sed之打印和删除特定行

时间:2024-03-11 07:35:19

在如下的红色字体中,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”命令(退出命令)。在处理大的文件时,这会节省大量时间。

七、打印同时匹配xiangle(只有两者同时出现时,才能打印出来)的行

  sed -n ‘/xiang/{/le/p}’ tmp

八、打印匹配xiangle(当一行中有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

 

如果有什么不足,请帮忙指出来,我将继续学习,谢谢