Sed命令的使用总结

1>.sed删除行首的空格或tab字符。
sed 's/^[ \t]*//g' file

sed 's/^ *//g' file
2>.sed输出字符串:
打印第三行(3表示等号,p表示打印)

sed -n '3p' /etc/passwd
打印2至5行

sed -n '2,5p' /etc/passwd
从第2行开始,每隔3行打印一行

sed -n '2~3p' /etc/passwd
打印最后一行

sed -n '$p' /etc/passwd
打印包含或不包含root的行

sed -n '/root/p' /etc/passwd
sed -n '/root/! p' /etc/passwd
打印包含/bin/bash的行(%regexp%可以不用转义斜杠)

sed -n '\%/bin/bash%p' /etc/passwd
忽略大小写的搜索

sed -n '\%/BIN/bash%Ip' /etc/passwd或sed -n '/\/BIN\/bash/Ip' /etc/passwd
搜索从开始到sshd字符的范围

sed -n '0,/sshd/p' /etc/passwd
3>sed正则表达式的介绍:
char
只匹配本身char
*
匹配之前字符的0个或更多
+
与*相比,只是匹配1个或更多
?
匹配前面字符的0个或1个
{i}
匹配前面字符的i个,i是整数
{i,j}
匹配前面字符的i至j个,包含i和j
{i,}
匹配前面字符的i个或i个以上
(regexp)
分组字符,两个作用1、(abcd)*会搜索0个或多个abcd字符,abcd是作为一个整体2、作为反向引用,可以使用1 2等引用。
.
匹配任何字符,包括换行符
^
匹配行的开始
$
匹配行的结束
[list]
匹配list中的任单字符,如l,i,s,t
[^list]
反向匹配l,i,s,t
regexp1|regexp2
匹配regexp1或者regexp2
regexp1regexp2
匹配regexp1与regexp2连接
n
匹配换行字符
char
匹配特殊字符,如$, *, ., [, , ,^

4>sed参数详解:
-e

你可能感兴趣的:(Shell,shell,sed,使用总结)