sed之打印和删除特定行
在如下的红色字体中,d是删除,p是打印
一、打印打印奇数行(删除偶数行)或者偶数行(删除奇数行)
1.仅打印奇数行
sed ‘n;d’ tmp
2.仅打印偶数行
sed -n ‘n;p’ tmp
二、打印包含某单词的行
sed -n ‘/word/p’ tmp
三、打印以某单词开头的行
sed -n ‘/^word/p’ tmp
四、打印以某单词结尾的行
sed -n ‘/word$/p’ tmp
五、删除所有空行
sed ‘/^$/d’ tmp
六、显示第1行或第2行到第5行
sed -n ‘1p’ tmp
sed -n ‘2,5p’ tmp 或者 sed -n ‘6q,2,5p’ tmp 后者比前者效率高很多
当只需要显示文件的前面的部分或需要删除后面的内容时,可以在脚本中使用“q”命令(退出命令)。在处理大的文件时,这会节省大量时间。
七、打印同时匹配xiang和le(只有两者同时出现时,才能打印出来)的行
sed -n ‘/xiang/{/le/p}’ tmp
八、打印匹配xiang或le(当一行中有xiang或者le或者既有xiang也有le的行匹配出来并打印)的行
sed -n ‘/\(xiang\|le\)/p’ tmp
九、打印特定行(匹配文本中第一个出现wo的单词的行,到第一个出现jia的单词的行之间的行,如果只有wo的单词的行,没有jia的单词匹配的行,则匹配wo单词的行到后面所有的行,如果没有wo的单词的行,那么就哪行也匹配不上)
sed -n '/wo/,/jia/p' tmp
十、打印匹配wo或者Wo的行
sed -n ‘/[w|W]o/p’tmp
十一、打印不挨着也没有规律的行(例如第2行和第5行)
sed -n '2p;5p' tmp
十二、 删除文件顶部的所有空行
sed '/./,$!d' tmp 或者 sed -n '/./,$p' tmp
十三、显示包含特定字符个数的行
1.显示包含50个或以上字符的行
sed -n '/^.\{50\}/p' tmp
2.显示包含50个以下字符的行
sed -n '/^.\{50\}/!p' tmp 或者 sed '/^.\{50\}/d' tmp
十四、显示或删除特定倍数的行
1.显示3的倍数的行
sed -n 'n;n;p;' tmp
2.删除3的倍数的行
sed 'n;n;d;' tmp
十五、从第3行开始,每4行显示一次
sed -n '3,${p;n;n;n;}' tmp
如果有什么不足,请帮忙指出来,我将继续学习,谢谢