sed用法

sed
#sed 还有高级模式 就是保持空间的 hold space
sed 编辑文件内容
###注,sed不能修改软连接文件,改了之后,软连接和源文件不同步
默认不修改文件内容,打开时会把内容加载到内存空间
###注sed ni  会清空内容
动作
d  删除
!d 删除其他
p  显示
-n p  显示配置-n使用
a  追加
i  插入
c  替换
=  行号
r  添加文件内容
w  另存为
s  g整行替换

option
-n  不显示模式空间的内容配合p使用
-i  修改源文件
-i.bak  修改源文件并且备份.bak 后缀文件
-r  使用扩展正则表达式
-e  写多个条件
-f  把命令写在文件里,调用执行
--follow-symlinks 修改软连接文件


分组
(abc)
反向引用
 \1
 \2
 \3
 引用第几组
[root@111 ~]# cat /etc/passwd | grep "user1:x:\(1010\):\1"
user1:x:1010:1010::/home/user1:/bin/bash

如果要修改需要 -i 的option
字符分组 \{abc\}\{2\}
sed [option] scripts file1 file2 
sed [option] 'addressconmmand' file1

address
 1,100
 1,$
 3,10
 3
 $
 5,+2
 /root/,+2
 /正则表达式/
 /正则表达式1/,/正则表达式2/ 范围
 
 sed -i '1,24500d' index.html   
 sed -i '/^hi/d' index.html
 sed 's/原字符串/替换字符串/g; s/原字符串/替换字符串/g'
 sed '/^\//d' /etc/fstab
 sed '$a\hello' /etc/fstab
 sed '$a \hello\nhaha' /etc/fstab   追加两行
 sed '1i \hello\nhaha' /etc/fstab  第一行插入
 sed '1c \hehe' /etc/fstab			替换第一行
 sed '/^#Port 22/c\Port 8888' sshd_config
 sed -n '$=' /etc/fstab
 sed '$r /etc/passwd' /etc/fstab 
 sed '/^#/w /tmp/sed' /etc/fstab  
 sed 's/old/new/g' /etc/fstab old可以用正则表达式
 sed '1,$s/etc/tmp/' /etc/fstab  
 sed 's|\(l..e\)|\1r|g'/tmp/1.txt   sed 's|l..e|&r|g'/tmp/1.txt 
 sed -e 's/old/new/g' -e'1c \hehe' /etc/fstab	
 sed -f /tmp/2.txt /etc/fstab
 sed --follow-symlinks -i '/^\//d' /etc/fstab 
 sed '1~2d' 删除奇数行
 sed '2~2d' 删除偶数行
############################################################ 
[root@wang tmp]# cat 1 | sed 's/haha/xiao/' > 11
[root@wang tmp]# cat 11
xiao
hehe
heihei
############################################################ 
[root@pxe7 Packages]# ls  | awk -F. '{print $(NF-1)}' | sort | uniq -c
   1348 noarch
      1 TRANS
   2546 x86_64
############################################################ 
列出内核包
[root@pxe7 Packages]# ls  | sed -nr 's/(.*)\.(.*)\.rpm$/\2/p'
[root@pxe7 Packages]# ls  | sed -n 's/\(.*\)\.\(.*\)\.rpm$/\2/p'
############################################################ 
[root@bogon htdocs]# sed -ri 's@(^.*<h1>)(.*)(</h1>.*)@\1haha\3@' index.html  
[root@bogon htdocs]# cat index.html 
<html><body><h1>haha</h1></body></html>
############################################################
[root@wang tmp]# echo apache-tomcat-8.5.55.tar.gz | sed -rn 's/^(.*[0-9.]+)\.[[:alpha:]]+.*$/\1/p'
apache-tomcat-8.5.55   后项引用
############################################################
[root@wang tmp]# echo apache-tomcat-8.5.55.tar.gz | sed -rn 's/^(.*[0-9.]+)(\.)([[:alpha:]]+.*)$/\1/p'
apache-tomcat-8.5.55
############################################################
[root@wang tmp]# echo apache-tomcat-8.5.55.tar.gz | sed -rn 's/^(.*[0-9.])(\.)([[:alpha:]]+.*)$/\1/p'    
apache-tomcat-8.5.55
############################################################
[root@wang tmp]# echo apache-tomcat-8.5.55.tar.gz | sed -rn 's/.*\.([^.]+)/\1/p'                                       
gz
############################################################
[root@wang tmp]# echo apache-tomcat-8.5.55.tar.gz | sed -rn 's@^(.*[0-9.]+)\.*([^.]+)@\2@p'
gz
############################################################
[root@wang tmp]# echo apache-tomcat-8.5.55.tar.gz | sed -rn 's@^([^0-9.]+)([0-9.]+)\.(.*)@\2@p'
8.5.55
############################################################
[root@wang tmp]# echo apache-tomcat-8.5.55.tar.gz | sed -rn 's@^([^0-9.]+)([0-9.]+)\.(.*)\.(.*)@\3@p'
tar
############################################################
[root@wsb tmp]# sed -n '2,$p ' 1 
2
3
4
5
6
7
8
9
############################################################
[root@rocky tmp]# sed -n '/[1]\+/p' 123
1111
############################################################
[root@rocky tmp]# sed -ri '/\/dev\/mapper\/vg00\-lv00\_swap/s@(.*)0$@\1test@' fstab 
[root@rocky tmp]# cat fstab 
/dev/mapper/vg00-lv00_root /                       xfs     defaults        0 0
UUID=3fbe8df6-5f14-419a-932a-c353e38da37d /boot                   xfs     defaults        0 0
/dev/mapper/vg00-lv00_swap none                    swap    defaults        0 test
[root@rocky tmp]# 
############################################################
截取分区利用率
[root@rocky ~]# df -TH| grep '^/dev' | sed -rn 's/.*[GM]  ([0-9]{1,3}%).*/\1/p'
13%
83%
############################################################
[root@rocky lib]# ifconfig ens160 | sed -nr -e '2s/^.*inet//p;s/netmask.*/root/p'
 192.168.1.20  netmask 255.255.255.0  broadcast 192.168.1.255
 192.168.1.20  root

gzip 压缩
gzip -k 压缩保留源文件
gunzip 解压
gzip -d 解压

bzip2 压缩
bzip2 -d 解压
bunzip2 解压

xz 压缩
xz -d 解压
xunz 解压

tar zcvf 目标.tar.gz  源文件
tar -tvf 123.tar.gz 查看包
split 文件切割

locate

事先把磁盘文件信息创建索引数据库 /var/lib/mlocate/mlocate.db
更新索引 updatedb
-i 不区分大小写
-r 支持正则表达式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值