7.4 文本处理命令
目录
文本处理命令

1. 文本处理工具
tr
tr [OPTION]... SET1 [SET2]
- 作用:
- 将输入中 SET1中的每个字符替换SET2中的每个字符,字符是顺序替换
- 如果SET1的字符长度大于SET2,那么将SET1中多出来的字符用SET2中的最后一个字符替换
- 参数:
-t: 将SET2中的每个字符替换SET1中的每个字符,字符字符顺序1对1替换,无论SET1还是SET2哪个长,只替换对应的字符,多出的不替换。-c: 取反操作,取数据流中SET1中指定字符的补集。-d: 删除SET1中指定的字符,这里没有SET2-s: 将SET1中指定的连续的连续重复的字符用单个字符替代,可以使用-s ‘\n’删除空行。
- 字符编码集:
[:alpha:]:字母,可以用来替代’a-zA-Z’[:lower:]:小写字母,可以用来替代’a-z'[:upper:]:大写字母,可以用来替代’A-Z'[:digit:]:数字,可以用来替代'0-9'[:alnum:]:字母和数字,可以用来替代’a-zA-Z0-9'[:space:]:空白字符[:punct:]:标点符号[:xdigit:]:十六进制字符[:cntrl:]:控制(非打印)字符[:print:]:可打印字符[:graph:]:图形字符
wc
wc [-clw] [FILE...]
- 作用:
- 用于计算字数,可以计算文件的Byte数、字数、或是列数
- 若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据
- 参数:
-c, --bytes, --chars; 只显示Bytes数。-l, --lines: 只显示行数。-w, --words: 只显示单词数
cut
cut [-df] [file]
- 作用:
- 从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出
- 参数:
-d:自定义分隔符,默认为制表符。-f:与-d一起使用,指定显示的区域,表示方式如下:n:指定的单个字段n-m:连续的多个字段n,m:离散的多个字段-c:以字符为单位进行分割
- eg:
cut -d: -f1,3-5,7 /etc/passwd
sort
sort [-frtknu] [file]
- 作用:
- 针对文本文件的内容,以行为单位来排序
- 参数:
-t: 指定分隔符-k POS1[,POS2]: 用于排序比较的字段-f: 排序时,忽略大小写-r: 逆序排序-n: 基于数值大小而非字符进行排序-u: 排序并去重-b: 忽略每行前面开始出的空格字符-c: 检查文件是否已经按照顺序排序。-d: 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。-m: 将几个排序好的文件进行合并-o: 将排序后的结果存入指定的文件
uniq
uniq [-cdufsw][输入文件][输出文件]
- 作用:
- 检查文本文件中重复出现的行列
- 只有连续且一致的行才算重复行
- 参数:
-c,--count: 显示每行的重复次数-d, --repeated: 仅显示重复过的的行-u, --unique: 仅显示未曾重复过的行
diff 和 patch
diff [OPTION]... FILES
- 作用: 按行比较文件
- 选项:
-u: 使用unfied机制,即显示要修改的行的上下文,默认为3行;
- 补丁:
diff /PATH/TO/OLDFILE /PATH/TO/NEWFILE > /PATH/TO/PATCH_FILE
patch -i /PATH/TO/PATCH_FILE /PATH/TO/OLDFILE
patch /PATH/TO/OLDFILE < /PATH/TO/PATCH_FILE
- 作用: 向文件打补丁
patch -R /PATH/TO/PATCH_FILE /PATH/TO/OLDFILE
- 作用: 撤消补丁