目录

7.4 文本处理命令

文本处理命令

/images/linux_mt/linux_mt.jpg

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

  • 作用: 撤消补丁