运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

sed命令常见用法

运维开发网 https://www.qedev.com 2021-05-07 19:51 出处:51CTO 作者:hkui2010
sed命令常见用法,专注web开发!原创的Linux文章。

sed基本使用

sed -n 'num1p' file 选出行号为num1的行

sed -n 'num1,num2p' file 选出num1~num2行

sed -n 'num1,$p' file           选出num1行到文件末尾

grep -n '.*' file |sed 'num1p' -n  带行号的显示

sed  '/root/p' -n pp.txt              查找带root的行

/ /之间和grep 一样  有些正则 需加 -r 参数 类似 grep的 -E

-e 多个表达式 或的关系

sed -e '/pattern1/p'  -e '/pattern2/p' -n

或者

sed '/pattern1/p;/pattern2/p' -n

sed '1,5d'   筛选除了1,5行的

cat -n pp.txt |sed  -r '/mysql|root/d'   筛选出不含有 mysql或者 root的 行

sed 's/str1/str2/' file    在file里把 str1替换成str2 查找显示

sed 'num1,num2s/str1/str2/' file  在file的num1~num2把 str替换成str2

大小写转换

sed 's/[a-z]/\u&/g' 1.txt         u ->upper

sed 's/[A-Z]/\l&/g' 1.txt         l ->lower

-i 修改了重定向至文件

sed命令常见用法

sed命令常见用法

[[email protected]~]# cat -n pp.txt 
     1  root:x:0:0:root:/root:/bin/bash     2  #bin:x:1:1:bin:/bin:/sbin/nologin     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin     4  #adm:x:3:4:adm:/var/adm:/sbin/nologin     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  #shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown     8  halt:x:7:0:halt:/sbin:/sbin/halt     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin    10  operator:x:11:0:#operator:/root:/sbin/nologin    11  games:x:12:100:games:/usr/games:/sbin/nologin    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin    13  nobody:x:99:99:Nobody:/:/sbin/nologin    14  avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin    15  dbus:x:81:81:System message bus:/:/sbin/nologin    16  polkitd:x:999:998:User for polkitd:/:/sbin/nologin    17  abrt:x:173:173::/etc/abrt:/sbin/nologin    18  sssd:x:998:997:User for sssd:/:/sbin/nologin    19  colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin    20  ntp:x:38:38::/etc/ntp:/sbin/nologin

View Code

sed '2p' pp.txt

sed命令常见用法

sed命令常见用法

[[email protected]~]# sed '2p' pp.txt 
root:x:0:0:root:/root:/bin/bash
#bin:x:1:1:bin:/bin:/sbin/nologin
#bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
#adm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/sync#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:#operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sssd:x:998:997:User for sssd:/:/sbin/nologin
colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin

View Code

sed -n '2p' pp.txt

 

[[email protected]~]# sed -n '2p' pp.txt 
#bin:x:1:1:bin:/bin:/sbin/nologin

 

sed不具有显示行号功能 配合grep

grep -n '.*' pp.txt |sed '2p' -n

sed命令常见用法

sed命令常见用法

[[email protected]~]# grep -n '.*' pp.txt |sed '2p' -n2:#bin:x:1:1:bin:/bin:/sbin/nologin
[[email protected]~]# grep -n '.*' pp.txt |sed '2,5p' -n2:#bin:x:1:1:bin:/bin:/sbin/nologin3:daemon:x:2:2:daemon:/sbin:/sbin/nologin4:#adm:x:3:4:adm:/var/adm:/sbin/nologin5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

View Code

grep -n '.*' pp.txt|sed  -n '5,$p'

sed命令常见用法

sed命令常见用法

[[email protected]~]# grep -n '.*' pp.txt|sed  -n '5,$p'5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin6:sync:x:5:0:sync:/sbin:/bin/sync7:#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown8:halt:x:7:0:halt:/sbin:/sbin/halt9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin10:operator:x:11:0:#operator:/root:/sbin/nologin11:games:x:12:100:games:/usr/games:/sbin/nologin12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin13:nobody:x:99:99:Nobody:/:/sbin/nologin14:avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin15:dbus:x:81:81:System message bus:/:/sbin/nologin16:polkitd:x:999:998:User for polkitd:/:/sbin/nologin17:abrt:x:173:173::/etc/abrt:/sbin/nologin18:sssd:x:998:997:User for sssd:/:/sbin/nologin19:colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin20:ntp:x:38:38::/etc/ntp:/sbin/nologin

View Code

grep -n '.*' pp.txt |sed '/root/p' -n

[[email protected]~]# grep -n '.*' pp.txt |sed '/root/p' -n1:root:x:0:0:root:/root:/bin/bash10:operator:x:11:0:#operator:/root:/sbin/nologin
[[email protected]~]# cat 1.txt 
rt
rot
root
ro t
[[email protected]~]# sed '/ro{1,}t/p' -n -E 1.txt 
rot
root

查找含有 root或者ftp的行

grep '.*' -n pp.txt |sed -e '/root/p' -e '/ftp/p' -n

[[email protected]~]# grep '.*' -n pp.txt |sed -e '/root/p' -e '/ftp/p' -n1:root:x:0:0:root:/root:/bin/bash10:operator:x:11:0:#operator:/root:/sbin/nologin12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

sed命令常见用法

sed命令常见用法

[[email protected]~]# cat 1.txt 
php
php js
js
python
[[email protected]~]# sed -e '/php/p' -e '/js/p' -n 1.txt 
php
php js
php js
js
[[email protected]~]# sed -e '/php/p' -e '/js/p'  1.txt 
php
php
php js
php js
php js
js
js
python
[[email protected]~]# sed  '/php/p;/js/p'  1.txt -n
php
php js
php js
js

View Code

cat -n pp.txt |sed '1,5d'

 

sed命令常见用法

sed命令常见用法

[[email protected]~]# cat -n pp.txt |sed '1,5d'
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  #shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown     8  halt:x:7:0:halt:/sbin:/sbin/halt     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin    10  operator:x:11:0:#operator:/root:/sbin/nologin    11  games:x:12:100:games:/usr/games:/sbin/nologin    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin    13  nobody:x:99:99:Nobody:/:/sbin/nologin    14  avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin    15  dbus:x:81:81:System message bus:/:/sbin/nologin    16  polkitd:x:999:998:User for polkitd:/:/sbin/nologin    17  abrt:x:173:173::/etc/abrt:/sbin/nologin    18  sssd:x:998:997:User for sssd:/:/sbin/nologin    19  colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin    20  ntp:x:38:38::/etc/ntp:/sbin/nologin

View Code

 

不看#开头的注释

cat  pp.txt |sed '/^#/d'

sed 's/php/python/' 1.txt

sed '1,3s/php/python/' 1.txt

[[email protected]~]# cat 1.txt 
11111111123php456
123456js
123456php
[[email protected]~]# sed 's/php/python/' 1.txt 
11111111123python456
123456js
123456python
[[email protected]~]# sed '1,3s/php/python/' 1.txt 
11111111123python456
123456js
123456php

如果字符串里有/,可使用别的分隔符

/mnt/hgfs/ 替换为 /usr/local/nginx/html

sed 's#/mnt/hgfs/#/usr/local/nginx/html/#' www.conf>www.conf

 

大小写转换

小写转大写

sed 's/[a-z]/\u&/g' 1.txt

sed 's/[A-Z]/\l&/g' 1.txt

sed命令常见用法

sed命令常见用法

[[email protected]~]# cat 1.txt 
11111111123php456
123456js
123456pHp

[[email protected]~]# sed 's/[a-z]/\u&/' 1.txt 
11111111123Php456
123456Js
123456PHp
[[email protected]~]# sed 's/[a-z]/\u&/g' 1.txt 
11111111123PHP456
123456JS
123456PHP
[[email protected]~]# sed 's/[A-Z]/\l&/g' 1.txt 
11111111123php456
123456js
123456php

View Code

字符串位置替换

[[email protected]~]# cat 1.txt 
a:b:c:d
a1:b1:c1:d1
a2:b2:c2:d2
a_: :c:dddd
[[email protected]~]# sed -r 's/([^:]+)(:.*:)([^:]+$)/\3\2\1/' 1.txt
d:b:c:a
d1:b1:c1:a1
d2:b2:c2:a2
dddd: :c:a_

 

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号