2.4 sed命令-1
-n p -r d -i
打印某行 : sed -n '10'p 1.txt
打印1-10行: sed -n '1,10'p 1.txt
打印20行到尾行: sed -n '20,$'p 1.txt
打印包含某个字符串的行: sed -n '/root/'p 1.txt
grep中使用的特殊字符,如 ^ $ . * 等同样也能在sed中使用
sed -n '/r.o/'p 1.txt
用到?+(){}| 时要加-r 或使用脱意符\
sed -n -r '/(rr)+/'p 1.txt
-e可以实现多个行为:sed -e '1'p -e '/111/'p -n test.txt
删除某行或者多行: sed '/^$/'d 1.txt ; sed '1,19'd 1.txt
sed -i '1,19'd 1.txt 加-i会真正在文件上删除内容
// 用在匹配、替换的时候
2.5 sed命令-2
1-10行替换单个字符: sed '1,10s/nologin/login/g' 1.txt
(全局)字符串替换单个字符: sed 's#/sbin/nologin#login#g' 1.txt
所有行替换成login: sed 's#^.*$#login#g' 1.txt
所有行结尾加login: sed 's#^.*$#&login#g' 1.txt
&表示一整行
删掉所有数字: sed 's#[0-9]##g' 1.txt
删掉所有字母: sed 's#[a-zA-Z]##g' 1.txt
删掉所有特殊符号: sed 's#[^0-9a-zA-Z]##g 1.txt
第一段和最后一段调换: sed -r 's#(^[a-z0-9]+)(:.*:)(.*$)#\3\2\1#g 1.txt
sed -r 's/([^:]+)(:.*:)([^:]+)/\3\2\1/' /etc/passwd
用分号;实现多个语句匹配:
sed -n '/user/p; /aming/p' 1.txt
== sed -n -e '/user/p' -e '/aming/p' 1.txt
编辑回复