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
- 作用: 撤消补丁