文本处理命令和sed

一、文本处理命令

1.重点(3)

  • 实现的功能(8)
    排序,去重,显示指定部分,替换,删除,统计字节数,统计行数,统计单词数

  • 相关命令(5)
    sort (4)、uniq(3)、cut(2)、tr(1)、wc(3)

  • 参数(10)
    -n, -r, -k, -t, -c, -d, -u, -f , -l, -w

2.详细内容

  • 用于将文件内容加以排序 :sort命令
序号 功能 参数
1 根据数值从小到大排序 -n
2 根据数值从大到小排序 -r
3 以某列进行排序 -k
4 指定分割符,默认是以空格为分隔符 -t
  • 检查及删除文本文件中重复出现的行列 : uniq
序号 功能 参数
1 在每列旁边显示该行重复出现的次数 -c
2 仅显示重复出现的行列 -d
3 仅显示出一次的行列 -u
  • 显示行中的指定部分,删除文件中指定字段 : cut命令
序号 功能 参数
1 指定字段的分隔符,默认的字段分隔符为"TAB" -d
2 显示指定字段的内容 -f
  • 替换或删除命令 :tr -d 删除字符
  • 统计,计算数字:wc
序号 功能 参数
1 统计文件的Bytes数 -c
2 统计文件的行数 -l
3 统计文件中单词的个数,默认以空白字符做为分隔符 -u

二、Linux三剑客之sed命令

1.重点(6)

  • 三剑客的功能(3)

    grep, sed, awk

  • sed命令的格式

  • 参数功能(5)
    允许多项编辑,取消默认输出,就地编辑,支持拓展正则,指定sed匹配规则脚本文件

  • 编辑模式功能(12)
    删除,打印,在当前行后添加一行或多行,用新文本修改(替换)当前行,在当前行之前,插入文本,将所在行下一行增加从文件中读取的内容

  • 参数符号(5)
    -e, -n, -i, -r, -f

  • 编辑模式符号(12)
    d, p, a, c, i, r, w, y, s, g, i, &

  • 定位(4)

    数字定位,正则定位,数字和正则定位,正则和正则定位

2.详情

  • 三剑客功能

    grep : 过滤文本

    sed : 修改文本(sed是linux中,流媒体编辑器)

    awk : 处理文本

  • sed命令的格式

    sed [参数] '处理规则' [操作对象]
    
  • 参数详情

序号 功能 参数
1 允许多项编辑 -e
2 取消默认输出 -n
3 就地编辑 -i
4 支持拓展正则 -r
5 指定sed匹配规则脚本文件 -f
  • 定位
序号 方法名称 作用 写法
1 数字定位法 指定行号 sed '3d' 4.txt
sed '2,3d' 4.txt
2 正则定位法 指定正则定位 sed '/^g/d' 2.txt
3 数字和正则定位法 - sed '3,/^g/d' 2.txt
4 正则正则定位法 - sed '/g/,/j/d' 2.txt
  • sed的编辑模式
序号 功能 符号 案例
1 删除 d sed '3d' 4.txt
2 打印 p sed '3p' 4.ptxt
3 在当前行后添加一行和多行 a sed '2axxx' 4.txt
4 用新文本修改(替换)当前行 c sed '2cxxx' 4.txt
5 在当前行之前插入文本 i sed '2ixxx' 4.txt
6 在文件中读取命令执行 r sed '2r r.txt' 2.txt
7 将读取的文件内容写入当前行 w sed '2w w.txt' 2.txt
8 将字符转换成另一个字符 y sed '2y/fa/FA/' 2.txt
9 将字符串转换成另一个字符串,每行只替换一次 s sed 's/11/22/' 6.txt
10 全部执行 g sed 's/11/22/g' 6.txt
11 忽略大小写,跟 s 模式一起使用时 i -
12 代表前面匹配到的内容 & -
  • 案例
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,
	192.168.15.100 ---> 192.168.15.101
	172.16.1.100   ---> 172.16.1.101
	sed -i 's#.100#.101#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
	
4、将/etc/passwd中的root修改成ROOT
	sed -i 's#root#ROOT#g' /etc/passwd
posted @ 2021-12-21 22:09  recordlife  阅读(45)  评论(0编辑  收藏  举报