打印出filename中,空行所在的行数
sed -n '/^$/=' filename
为文件加行号
sed = filename|sed 'N;s/\n/:/'
字符翻转
sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' filename
删除连续重复的行
sed '$!N; /^\(.*\)\n\1$/!P; D' filename
合并上下行并以空格相分隔
sed '$!N;s/\n/ /' filename
将以\符号结尾的行与下行合并并以空格分隔(拼接断行)
sed -e :a -e '/\\$/N; s/\\\n/ /; ta' filename
按关键字拼接行,如果某行以=开始,则合并到上一行并替代=为空格
sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D' filename
显示匹配行的行号并输出匹配行的上行、匹配行、下行
sed -n -e '/regexpr/{=;x;1!p;g;$!N;p;D;}' -e h filename
从字串中解析出两个子串(前2各字符和后9个字符)
echo "WeLoveChinaUnix"|sed -e 'H;s/\(..\).*/\1/;x;s/.*\(.\{9\}\)$/\1/;x;G;s/\n/ /'
We ChinaUnix
分解日期串
echo 20151212|sed 's/\(....\)\(..\)\(..\)/\1 \2 \3/'
2015 12 12
按时间范围输出
sed -n '/2016-10-01 11:16:29/,/2016-10-01 12:30:52/p' aa.txt
指定行后 追加多行
sed -i 'N;2 a ddddddddd\nfffffffff\ngggggggg' test1
指定行后追加文件的内容
sed -i 'N;6 r ip.txt' test1
多个文件合成一个;A.file B.file 合成C.file
A.file
1
3
5
7
B.file
2
4
6
8
C.file
1
2
3
4
5
6
7
8
paster A.file B.file > C.file
编辑C.file 把空格换成回车符 :%s/\s/\r/g