内容概要
内容详细
文本处理命令
1、sort命令
用于将文件内容加以排序
-n :依照数值的大小排序
-r :以相反的顺序来排列
-k :以某列进行排序
-t :指定分隔符,默认是以空格为分隔符
cat 1.txt | sort -n -r -k2 -t '|'
2、uniq命令
用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用
-c :在每列旁边显示该行重复出现的次数
-d :仅显示重复出现的行列
-u :仅显示出一次的行列
3、cut命令
cut命令用来显示行中的指定部分,删除文件中指定字段
-d :指定字段的分割符,默认的字段分割符为"TAB"
-f :显示指定字符的内容
4、tr命令
替换或删除命令
-d :删除字符
5、wc命令
统计,计算数字
-c :统计文件中的bytes数
-l :统计文件中的行数
-w :统计文件中的单词个数,默认以空白字符作为分隔符
注:在Linux系统中,一段连续的数字或者字母组合为一个词
Linux三剑客之sed
sed 是Linux中流媒体编辑器
grep :过滤文本
sed :修改文本
awk :处理文本
1、sed 的格式
sed [参数] '处理规则' [操作对象]
2、参数
-e :允许多项编辑
-n :取消默认输出
-i :就地编辑
-r :支持拓展正则
-f :指定sed匹配规则脚本文件
3、定位
1.数字定位法
指定行号
sed '2d' 1.txt
sed '2,3d' 1.txt
2.正则定位法
sed '/^a/d' 1.txt
3.数字和正则定位法
sed '2,/^a/d' 1.txt
4.正则正则定位法
sed '/^a/,/^b/d' 1.txt
4、sed的编辑模式
d :删除
p :打印
a :在当前行添加一行或多行
sed '3axxx' 1.txt
c :用新文本修改(替换)当前行
sed '3cxxx' 1.txt
i :在当前行之前插入文本(单独使用时)
sed '3ixxx' 1.txt
r :将1.sh中的内容写入1.txt的第三行
sed '3r 1.sh' 1.txt
w :将指定行写入文件
sed '3w w.txt' 2.txt
y :将字符串转换成另一个字符串(每一行只替换一次)
sed 's/11/22/' 2.txt
g :全部执行
sed 's/11/22/g' 2.txt
i :忽略大小写(跟s模式一起使用时)
& :代表前面匹配到的内容
案例
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
sed -i 's/.99/.9/g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
4、将/etc/passwd中的root修改成ROOT
sed -i 's/root/ROOT/g' /etc/passwd