^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。
$ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。
. 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。
* 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。
[] 匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed。 [^] 匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。 (..) 匹配子串,保存匹配的字符,如s/(love)able/1rs,loveable被替换成lovers。 & 保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。 &; 匹配单词的开始,如:/&;love/匹配包含以love开头的单词的行。 &; 匹配单词的结束,如/love&;/匹配包含以love结尾的单词的行。 x{m} 重复字符x,m次,如:/0{5}/匹配包含5个0的行。 x{m,} 重复字符x,至少m次,如:/0{5,}/匹配至少有5个0的行。 x{m,n} 重复字符x,至少m次,不多于n次,如:/0{5,10}/匹配5~10个0的行。
sed ‘s/book/books/‘ file # 字符串替换
sed?-n?‘s/test/TEST/p‘ file??????????????????? # 只打印那些发生替换的行
sed -i ‘s/book/books/g‘ file # 替换源文件
sed ‘s/book/books/g‘ file # 全局替换
echo sksksksksksk | sed ‘s/sk/SK/3g‘ # 从第三个开始替换
sed ‘/^$/d‘ file # 删除空行
sed ‘2d‘ file # 删除第2行
sed ‘2,$d‘ file # 删除第2行至文件末尾
sed ‘$d‘ file # 删除最后一行
sed ‘/^test/d‘ file # 删除以test开头的行
echo this is a test line | sed ‘s/w+/[&]/g‘ # 匹配单词,替换成[单词]的形式
sed ‘s/^192.168.0.1/&localhost/‘ file # 把以192.168.0.1开头的行替换为192.168.0.1localhost
echo this is digit 7 in a number | sed ‘s/digit ([0-9])/1/‘ # 把digit 7替换为7
echo aaa BBB | sed ‘s/([a-z]+) ([A-Z]+)/2 1/‘ # 交换aaa和BBB的位置
sed -n ‘s/(love)able/1rs/p‘ file # 匹配loveable,替换为lovers,并打印出来这些替换的行
sed ‘表达式‘ | sed ‘表达式‘ # 多个sed通过管道连接
sed -n ‘/test/,/check/p‘ file # 打印test到check直接的行
sed -n ‘5,/^test/p‘ file # 打印从第5行开始,到第一个以test开始之间的所有行
sed ‘/test/,/west/s/$/aaa bbb/‘ file # 把test到west之间的行的末尾替换成aaa bbb
sed -e ‘1,5d‘ -e ‘s/test/check/‘ file # 先删除第1行到第5行,再把test替换为check
awk
‘BEGIN{FS=":"} {print $1,$3,$6}‘
OFS=
"t"
?/etc/passwd??? # 在处理前设置使用:作为分隔符,对/etc/passwd打印第1、3、6列
awk
‘$6 !~ /WAIT/ || NR==1 {print NR,$4,$5,$6}‘
OFS=
"t"
netstat
.txt
???? # 匹配第6列不包含WAIT的行,并打印行号、第4、5、6列
awk
‘NR!=1{print > $6}‘
netstat
.txt
?? # 按第6列的名字进行文件拆分
ls
-l? *.py |?
awk
‘{sum+=$5} END {print sum}‘
? # 统计python文件的总大小
ps
aux |?
awk
‘NR!=1{a[$1]+=$6;} END { for(i in a) print i "," a[i]"KB";}‘
? # 统计每个用户进程占用内存的大小
awk
‘length>80‘
file
? # 获取长度大于80的行
netstat
-ntu |?
awk
‘{print $5}‘
|?
cut
-d: -f1 |?
sort
|?
uniq
-c |?
sort
-nr
??? # 按连接数查看客户端IP