linux 文本处理命令
2017-05-30 13:53
218 查看
声明:本文总结自互联网,欢迎补充或占为己有
cat、 tac、 more、 less、 head、 tail、 nl、 grep 、 rev、 fold、acat、 pr
含有不可见字符的文本:
hexdump、 od、 xxd
1. 显示文本
普通文本:cat、 tac、 more、 less、 head、 tail、 nl、 grep 、 rev、 fold、acat、 pr
含有不可见字符的文本:
hexdump、 od、 xxd
2. 文本格式转换
dos2unix、unix2dos、 unix2mac3. 编码查询和转换
encguess、enca、iconv、enconv 、base644. 文本统计
wc#wc命令说明: 统计文本文件中有多少字,多少行,多少字符。 #格式: wc [-lwm] #参数说明: -l : 仅显示行数; -w : 仅显示字数(英文单词个数); -m : 字符数;
5. 内容排序排重
sort、tsort、uniq#sort命令说明: 将文本文件的内容按行排序。 #格式: sort [-fbMnrtuk] [file or stdin] # 参数说明: -f : 忽略大小写; -b : 忽略最前面的空格; -u : 即uniq,重复行仅出现一次; -M : 以月份的名字来排序; -n : 使用“纯数字”来排序; -r : 反向排序; -t : 分隔符,默认为tab键; -k : 按指定字段排序; #对文件/etc/passwd以第三栏排序 cat /etc/passwd | sort -t ':' -k 3
#uniq命令说明: 如果排序完成了,将重复的行仅显示一次。注意,若文件未排序,该命令失效。 #格式: uniq [-ic] #参数说明: -i : 忽略大小写; -c : 统计每行重复的次数;
6. 文本比较
cmp、comm、 diff、patch#diff命令说明: 以“行”为单位进行文件比较,一般用在ASCII纯文本文件。 #格式: diff [-bBi] file1 file2 #参数: -b : 忽略一行中有多个空白的差异; -B : 忽略空白行的不同; -i : 忽略大小写;
#diff命令说明: 以“行”为单位进行文件比较,一般用在ASCII纯文本文件。 #格式: diff [-bBi] file1 file2 #参数: -b : 忽略一行中有多个空白的差异; -B : 忽略空白行的不同; -i : 忽略大小写;
#cmp命令说明: 以“位”为单位进行文件比较,可以比较二进制文件。 #格式: cmp [-s] file1 file2 #参数: -s : 将所有不同点的位都列出来,默认仅输出第一个发现的不同点;
#patch命令说明 : diff old new > patch_file命令可以找出new文件与old文件不同的地方,然后用patch命令给old文件打上补丁,即与new文件相同了。 #格式: patch -pN < patch_file #参数: -pN表示取消N层目录。
7. 内容查找
grep, egrep, fgrep, ag#grep命令说明: 按行处理,输出文件中包含搜索字符串的所有行。 格式: grep [-acinv] ‘搜索字符串’ filename 参数说明: -a:在二进制文件中,以文本文件的方式搜索数据; -c:计算找到“搜索字符串”的次数; -i:忽略大小写; -n:输出行号; -v:反向选择; -E:扩展正则表达式 #在文件a.txt中搜索包含字符串good或glad的行 grep -E 'g(oo|la)d' a.txt
8. 内容摘要,加密和解密
md5sum, rsa, ssl, gpg9. 文本分割和整合
split、cut、join、paste、csplit#split命令说明: 将一个大文件拆分为几个小文件。 #格式: split [-bl] fle #参数说明: -b : 拆分的文件大小,可加单位,如b, k, m等; -l : 按行数进行拆分; #将文件bigfile按512K拆分,拆分后的文件依次为:smallfileaa、smallfileab split -b 512k bigfile smallfile #将文件bigfile中的每10行拆分成一个小文件 split -l 10 bigfile smallfile
#cut命令说明: 按行处理,将一行消息的某段切出来。 #格式: cut -d '分割字符' -f fields cut -c m-n #取出环境变量PATH中的第3个和第5个路径 echo $PATH | cut -d ':' -f 3,5 #取出环境变量PATH中的第3个到第5个路径 echo $PATH | cut -d ':' -f 3-5 #将export中的每行的前面11个字符删除留,保留从第12个字符开始的所有字符 export | cut -c 12-
#join命令说明: 处理两个文件中有相同数据的行,将它们加在一起。 #格式: join [-ti12] file1 file2 #参数说明: -i : 忽略大小写; -t : 分隔符,默认为空格符; -1 m : 指定file1用来比较的字段m,默认值为1; -2 n : 指定file2用来比较的字段n,默认值为1;
#paste命令说明: 比较两个文件的数据关联性,直接将“两行贴在一起”,中间以tab键隔开。 #格式: paste [-d] file1 file2 #参数说明: -d:后面接分隔符,默认为tab键。
10. 字符替换
tr、expand、unexpand#tr命令说明: 单个字符的处理工具,可以用于删除字符、替换字符等基本功能。 #格式: tr [-ds] SET #参数说明: -d:删除,例如:cat file | tr -d '\r',相当于dos2unix命令所起的作用。 -s:替换字符,例如:cat file | tr -s [0-9],如果某个数字连续出现,仅保留第一个。 #将file中的小写字符全部改为大写 cat file | tr [a-z] [A-Z]
#expand命令说明: 将tab键转换成空格键。 #格式: expand [-t] file #参数说明: -t n : 后面可以接一个数字n,一个tab键替换为n个空格键,默认值为8。
11. 格式化输出
fmt, col, column#col命令说明: 格式化显示列。 #格式: col [-x] #参数说明: -x:将tab键转换成对等的空格键; #使用cat -A,tab键会以^I显示,经过col -x处理,tab替换为空格 cat -A /etc/man.config | col -x | cat -A
12. 报表生成
awk#awk命令说明: 将一行消息分成数个段,对每行进程分别处理 #格式: awk '条件 {命令}' file #awk的内置变量: $n:该行的第n个字段; NF:每一行拥有的字段总数; NR:当前行的行号; FS:分隔符,默认为空格键; #打印passwd文件第三栏小于10的行的第1、3栏 cat /etc/passwd | awk 'BEGIN {FS=":"} $S3<10 {print $1 "\t" $3}'
13. 文本编辑器
eamcs, vim, sed#sed命令说明: 分析STDIN的数据,将数据处理后,输出到STDOUT。 #格式:sed [-nefr] 动作 #参数说明: -n: 安静模式,仅显示经过sed特殊处理的行; -e: 直接在命令行模式进行sed的操作编辑; -r: 支持扩展正则表达式语法 -f file: 将sed操作写在一个文件中; #动作说明: n1和n2代表选择进行操作的行数 function来源于ed编辑器; #在/etc/passwd第2行下面新增一行,写入"Hello World" nl /etc/passwd | sed '2a Hello World' #在/etc/passwd第2行上面新增一行,写入"Hello World" nl /etc/passwd | sed '2i Hello World' #删除/etc/passwd中的第2至5行 nl /etc/passwd | sed '2,5d' #仅显示2到5行,注意,如果不加-n,2到5行将重复输出 nl -n /etc/passwd | sed '2,5p' #将第1~20行中出现的所有字符串old替换为new nl /etc/passwd | sed '1,20s/old/new/g'
14. 文本流复制
tee#tee命令说明: 双向重导向,从标准输入读取数据,输出到屏幕上,同时保存成文件。 #格式: tee [-a] file #参数说明: -a:以累加的方式,将数据加入到file中。 #将ls命令的数据存一份到myfile中,同时屏幕也有输出数据 ls -al /home | tee ~/myfile | more
相关文章推荐
- Linux基础篇之文本、数据流处理命令(sed uniq grep awk wc)
- Linux 文本处理命令
- [文件]Linux文本处理常用命令总结
- Linux常用文本处理命令
- Linux基础篇之文本、数据流处理命令(sed uniq grep awk wc)
- Linux(三)高级文本处理命令
- linux下的文本处理命令sed&awk&grep
- Linux下常用文本处理命令
- Linux基本命令:awk文本处理命令
- Linux文本处理三剑客之sed命令
- Linux文本处理三剑客之grep命令
- 在Linux/Unix系统下用iconv命令处理文本文件中文乱码问题
- linux常用命令(1)-文本处理命令
- Linux基础命令:文本处理工具之join , paste
- linux文本处理三剑客(三):awk命令详解
- Linux基础之文本处理命令
- Linux 中常用的文本(行)处理命令
- Linux高级文本处理命令
- Linux 三大文本处理命令之一AWK
- Linux命令之文本处理(二)