Skip to content

Latest commit

 

History

History
125 lines (85 loc) · 3.08 KB

文本处理命令.md

File metadata and controls

125 lines (85 loc) · 3.08 KB

文本处理命令

cut

  • -A:显示所有,包括空格、制表符等不可见符号
  • -n:加行号
  • -s:不允许显示多行空白行

sort

  • -b:忽略开头的空白字符
  • -o:将排序结果存到文件中
  • -m:将指定文件认为是已经排序好的文件,不做排序,只合并成一个文件
  • -k:指定第几列排序列
  • -t:指定分隔符
  • -r:反选
  • -n:作为数字排序,不做字符串排序
  • -f:忽略大小写

uniq

只会删除相邻的重复行,所以经常和sort命令一起使用。

  • -u:显示除重后的文本行,这是默认行为
  • -c:在行开头列出重复的次数
  • -d:只显示重复的行
  • -i:忽略大小写
  • -f n:忽略行开头的n个单词,以空格作为分隔符
  • -s n:忽略行开头的n个字符

cut

  • -d: delimiter
  • -f: 要选择的区域
  • -c:选择要筛选的字符的范围cut -d : -f 1 /etc/passwd | cut -c 1-3,注意-c不能和其他参数一起使用

paste

将两个文本中的行逐一合并成一行,第一个文本文件中的行在前。-d选项可以指定分隔符,默认使用制表符作为分隔符。

paste file1 file2 -d ':'

join

根据两个文件中指定的join键来连接两个文件,默认使用空格为分隔符,第一列为join键。

       -e EMPTY
              replace missing input fields with EMPTY

       -i, --ignore-case
              ignore differences in case when comparing fields

       -j FIELD
              equivalent to '-1 FIELD -2 FIELD'

       -o FORMAT
              obey FORMAT while constructing output line

       -t CHAR
              use CHAR as input and output field separator

       -v FILENUM
              like -a FILENUM, but suppress joined output lines

       -1 FIELD
              join on this FIELD of file 1

       -2 FIELD
              join on this FIELD of file 2

comm

[root@Pi-3 regex]# comm a.txt b.txt 
a
		b
		...
		f
		g
	h

comm命令的输出共三行,第一行为第一个文本专有的行,第二列为第二个文本专有的行,第三列为共有的行。

  • -n:指定不输出的行comm -12 a.txt b.txt

diff

  • -c:上下文模式,详细
  • -u:统一模式,简介

diff & patch

通常情况下是使用diff命令生成文件/目录的差异文件,然后使用patch命令将修改合并到源文件中。

diff -Naur origin_file changed_file > diff_file.txt
patch < diff_file.txt

tr

  • -d: abc | a-c | [:upper:] | [:lower:] 删除包含的字符
  • -s: abc 如果指定的字符连续重复,则每个字符只会被压缩为省下一个字符

aspell

交互式拼写检查器。

aspell --lang=en check file

aspell会检查文本中的单词拼写,如果有错误则提示修改,修改结果会直接写入到文件中。

注意:aspell以来官方的词典,所以有可能只安装aspell程序之后不能工作,可以在这里下载aspell源码包和辞典安装包。

作者信息 🐵