1.文本处理命令
1.1 sort命令
1.1.1简介
sort命令是用于将文件内容加以排序
1.1.2语法格式
关键字:sort(默认以第一个字位排序)
参数1:-n (依照数值的大小排序)
参数2:-r (以相反的顺序来排序)
参数3:-k (以某列进行排序)
参数4:-t (指定分隔符,默认是以空格为分隔符)
eg:
[root@localhost ~]# sort -n -r -k6 -t '|' 3.txt
1.2 uniq命令
1.2.1简介
uniq命令用于检查及删除文本文件中的重复出现的行列,一般与sort命令结合使用
1.2.2语法句式
关键字:uniq(只把相邻的重复的内容去掉,如果想把不相邻的重复的内容也去掉,先排序(sort)再去重)
eg:
[root@localhost ~]# sort 4.txt | uniq
参数1:-c(在每列旁边显示该行重复出现的次数)
eg:
[root@localhost ~]# sort 4.txt | uniq -c
参数2:-d(仅显示重复出现的行列)
eg:
[root@localhost ~]# sort 4.txt | uniq -d
参数3:-u(仅显示出一次的行列)
eg:
[root@localhost ~]# sort 4.txt | uniq -u
1.3 cut命令
1.3.1简介
cut命令用来显示行中的指定部分,删除文件中指定字段
1.3.2语法句式
关键字:cut
参数1:-d(指定字段的分隔符,默认的字段分隔符为'TAB')
参数2:-f(显示指定字段的内容)
eg:
[root@localhost ~]# cut -d '|' -f2 3.txt
1.4 tr命令
1.4.1简介
tr命令是替换或删除命令
1.4.2语法句式
关键字:tr
eg:
[root@localhost ~]# cat 4.txt | tr 1111 5555
参数:-d(删除字符)
eg:
[root@localhost ~]# cat 4.txt | tr -d '1111'
1.5 wc命令
1.5.1简介
wc命令是统计,计算数字的
1.5.2语法句式
关键字:wc
参数1:-c(统计文件的Bytes数)
eg:
[root@localhost ~]# cat 5.txt | wc -c
参数2:-l(统计文件的行数)
eg:
[root@localhost ~]# cat 5.txt | wc -l
参数3:-w(统计文件统计文件中单词的个数,默认以空白字符作为分隔符)
eg:
[root@localhost ~]# cat 5.txt | wc -w
PS:
在Linux系统中,一段连续的数字或字母组合为一个词。
2.三剑客之sed
2.1简介
sed是linux中的一种编辑器(流媒体编辑器)
2.2语法格式
sed [参数] '处理规则' [操作对象]
关键字:sed
参数1:-e (允许多项编辑)
eg:
[root@localhost ~]# sed -e '3d' -e '4d' 4.txt
参数2:-n (取消默认输出)
eg:
[root@localhost ~]# sed -e '3d' -e '4d' -n 4.txt # 取消输出内容
参数3:-i (就地编辑(把展示的内容写入到文件里))
eg:
[root@localhost ~]# sed -i '3p' 4.txt
参数4:-r (支持拓展正则)
eg:
[root@localhost ~]# sed -r '/111/d' 4.txt
参数5:-f (指定sed匹配规则脚本文件)
eg:
[root@localhost ~]# sed -f r.txt 4.txt # r.txt-->(/1111/d)
2.3定位
2.3.1数字定位法
指定行号
eg:
[root@localhost ~]# sed '3d' 4.txt
[root@localhost ~]# sed '2,3d' 4.txt
2.3.2正则定位法
指定正则定位
eg:
[root@localhost ~]# sed '/a/d' 1.txt
eg:
[root@localhost ~]# sed '/^b/d' 1.txt
2.3.3数字和正则定位法
从第几行到正则匹配的第几行
eg:
[root@localhost ~]# sed '2,/^c/d' 1.txt
2.3.4正则正则定位法
从正则匹配的第几行到正则匹配的第几行
eg:
[root@localhost ~]# sed '/^w/,/^y/d' 1.txt
2.4 sed的编辑模式
模式1:d(删除)
[root@localhost ~]# sed '/^w/,/^y/d' 1.txt
模式2:p (打印)
[root@localhost ~]# sed '3p' 4.txt
模式3:a (在当前行前后添加一行或多行)
[root@localhost ~]# sed '3axxx' 1.txt # 在第三行后面添加一行
模式4:c (用新文本修改(替换)当前行)
[root@localhost ~]# sed '1cxxxx' 1.txt
模式5:i (在当前行之前,插入文本(单独使用时))
[root@localhost ~]# sed '2ixxxx' 1.txt
模式6:r (在文件中读内容,将所读内容插入文件中)
[root@localhost ~]# sed '2r r.txt' 1.txt # 在1.txt文件中第2行读内容,将所读内容插入第2行后
模式7:w (将指定行写入文件)
[root@localhost ~]# sed '2w w.txt' 1.txt
模式8:y (将字符转换成另一个字符)
[root@localhost ~]# sed '1y/w/a/' 1.txt # 将第一行的w替换成a
PS:
y是将单个字符单个字符进行替换
模式9:s (将字符串转换成另一个字符串(每一行只替换一次))
[root@localhost ~]# sed 's/11/22/' 5.txt
模式10:g (全部执行)
[root@localhost ~]# sed 's/11/22/g' 5.txt
模式11:i (忽略大小写(和s模式一起使用时))
[root@localhost ~]# sed 's/W/a/gi' 1.txt
模式12:& (代表前面匹配到的内容)
[root@localhost ~]# sed 's/.*/# &/g' /etc/nginx/nginx.conf