一、文本处理命令
1、sort命令
将文件内容进行排序
-n:依照数值的大小排序
-r:以相反的顺序来排序
-k:以某列进行排序
-t:指定分割符,默认是以空格为分割符
扩展:vim编辑内容全部替换(:号进入末行模式,输入1,% s/ */|/g)
2、uniq命令
用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用
-c:在每列旁边显示该行重复出现的次数
-d:仅显示重复出现的行列
-u:仅显示出现一次的行列
3、cut命令
cut命令用来显示行中的指定部分,删除文件中指定字段
-d:指定字段的分割符,默认的字段分割符为“Tab”
-f:显示指定字段的内容,与-d一起使用
4、tr命令
替换或删除命令
-d:删除字符
5、wc命令
统计文件的字节数、字数、行数(注:在Linux系统中,一段连续的数字或字母组合为一个词)
-w:统计文件中单词的个数,默认以空白字符做为分割符
-c:统计文件的Bytes数
-l:统计文件的行数
二、linux三剑客之sed
sed是linux中,流媒体编辑器,主要用来自动编辑一个或多个文件
grep:过滤文本
sed:修改文本
awk:处理文本
1、sed的格式
sed [参数] '处理规则' [操作对象]
2、参数
-e:允许多项编辑
-n:取消默认输出
-i:就地编辑
-r:支持拓展正则
-f:指定sed匹配规则脚本文件(可以将正则写入脚本)
3、定位
1、数字定位法
指定行号
2、正则定位法
指定正则定位
3、数字和正则定位法
4、正则正则定位法
4、sed的编辑模式
d:删除
p:打印
a:在当前行后添加一行或多行
i:在当前行之前,插入文本(单独使用时)
c:用新文本修改(替换)当前行
r:在文件中读内容
w:将指定行写入文件
y:将字符转换成另一个字符
s:将字符串转换成另一个字符串(每一行只替换一次)
g:全部执行
i:忽略大小写(跟s模式一起使用时)
&:代表前面匹配到的内容
[root@localhost ~]# sed 's/.*/# &/g' /etc/nginx/nginx.conf
三、案例
1、将nginx.conf中的注释全部去掉
[root@localhost ~]# sed '/^ *#/d' /etc/nginx/nginx.conf
2、将nginx.conf中每一行之前增加注释
[root@localhost ~]# sed 's/.*/# &/g' /etc/nginx/nginx.conf
3、修改本机的ip
[root@localhost ~]# sed -i 's/.100/.101/g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
4、将/etc/passwd中的root修改成ROOT
[root@localhost ~]# sed -i 's/root/ROOT/g' /etc/passwd