赞
踩
一般格式:sed -n ****
查找格式 | |
---|---|
‘2p’ | 打印、显示第二行 |
‘1,5p’ | '4,$p’第四行到最后一行 |
‘/lcf/p’ | 类似于grep过滤,//里面可以写正则 |
‘/10:00/,/11:00/p’ | 表示范围的过滤 |
‘1,/lcf/p’ | 混合查找 |
其中表示范围的时候 如果结尾的内容匹配不到就显示到最后。
需要用到正则表达式时要用sed -nr
sed -nr /^$|#/!p 3.txt 遇到#或空行不删除
一般格式:sed *****
查找格式 | |
---|---|
‘2d’ | 删除第二行 |
‘1,5d’ | ‘4,$p’ 第四行到最后一行 |
‘/lcf/d’ | 类似于grep过滤,//里面可以写正则 |
‘/10:00/,/11:00/d’ | 表示范围的删除 |
‘1,/lcf/d’ | 混合查找 |
命令 | |
---|---|
a | append追加 在指定行的后面追加内容 |
i | insert插入 在指定行的前面插入内容 |
c | replace替代 替代这行 |
[root@foundation76 Desktop]# cat 2 Awelcome nowcoder2121 Awelcome to nowcoder121 Bnowcoder11255 ### [root@foundation76 Desktop]# sed '2a lcfnb' 2 Awelcome nowcoder2121 Awelcome to nowcoder121 lcfnb Bnowcoder11255 ### [root@foundation76 Desktop]# sed '2i lccccccfnb' 2 Awelcome nowcoder2121 lccccccfnb Awelcome to nowcoder121 Bnowcoder11255 ### [root@foundation76 Desktop]# sed '2c lccsssssssccccfnb' 2 Awelcome nowcoder2121 lccsssssssccccfnb Bnowcoder11255 ###
企业案例中若要在一些配置文件最后追加几行的数据则我们可以
1.
cat >> xxxx.conf << 'EOF'
> 123
> 1231
> 212
> EOF
sed '$a 123\n 1231\n 212' xxxx.conf
替换格式 |
---|
s###g |
s@@@g |
[root@foundation76 Desktop]# sed 's#[0-9]##g' 2 #将数字替换成空
Awelcome nowcoder
Awelcome to nowcoder
Bnowcoder
###
lcf
其中g为global全局替换 没有g的话只替换每行第一个匹配的内容
口诀:先保护,在使用
意思是说前面部分#内用()阔起来 后面#用转译符号作修改
[root@foundation76 Desktop]# echo lcf_smy |sed -r 's#(.*)#<\1>#g' #添加<> <lcf_smy> [root@foundation76 Desktop]# echo lcf_smy | sed -r 's#(^\w+)_(\w+$)#\2_\1#g' #互换位置 smy_lcf #其中\w代表 [0-9a-zA-Z] # \2 代表后面的 # \1 代表前面的 [root@foundation76 Desktop]# ip addr show br0 |sed -n '3p' inet 172.25.254.76/24 brd 172.25.254.255 scope global noprefixroute br0 [root@foundation76 Desktop]# ip addr show br0 |sed -n '3p' | sed -r 's#^.*t (.*)/.*$#\1#g' #取ip 172.25.254.76 [root@foundation76 Desktop]# ip addr show br0 |sed -rn '3s#^.*t (.*)/.*$#\1#gp' #合并 172.25.254.76 #其中's#^.*t (.*)/.*$#\1#g'是 #^.*t 任意开头到t空格 #(.*) 保护好我们需要的 #/.*$ /开头任意到结束 [root@foundation76 Desktop]# stat /etc/hosts File: /etc/hosts Size: 410 Blocks: 8 IO Block: 4096 regular file Device: 10307h/66311d Inode: 167797011 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-03-21 14:57:53.827785430 +0800 Modify: 2022-03-08 14:57:53.470149574 +0800 Change: 2022-03-08 14:57:53.479149531 +0800 Birth: - [root@foundation76 Desktop]# stat /etc/hosts |sed -nr '4s#^.*\(0(.*)/-.*#\1#gp' #提权 644 #其中: #^.*\(0(.*)/-.* #\(0 中的小括号需要用\转译符号消除特殊含义 [root@foundation76 Desktop]# stat /etc/hosts |grep -o 644 这样也行 644 [root@foundation76 Desktop]# stat -c%a /etc/hosts 644
[root@foundation76 Desktop]# sed '=' 2 #在每行前一行插入行号 1 Awelcome nowcoder2121 2 Awelcome to nowcoder121 3 Bnowcoder11255 4 ### 5 6 lcf 7 12 8 2 [root@foundation76 Desktop]# sed '=' 2 |sed 'N;s#\n# #g' #显示行号 其中:N;是提前读取 1 Awelcome nowcoder2121 2 Awelcome to nowcoder121 3 Bnowcoder11255 4 ### 5 6 lcf 7 12 8 2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。