删除行开头同时有+和-字符的所有文本内容

时间:2018-08-07 12:06:06

标签: bash git shell filter

  

-此文件夹包含常见的数据库脚本。

     

+此文件夹包含常见的数据库脚本。

     

+换行

所以在上述情况下-我想删除前两行。开头同时带有+和-字符。

即 结果将像

  

+换行

如何在Shell / Bash / git中实现这一目标。

2 个答案:

答案 0 :(得分:1)

awk解决方案:

cat example

-This folder contains common database scripts.

+This folder contains common database scripts.

+New Line


awk 'f~/+ || -/ && /+ || -/ {f=$0;next} NR>1 {print f} {f=$0} END {print}' example

+New Line

答案 1 :(得分:0)

如果您在名为plusminus.txt的文件中包含行,并且不介意将行排成一行,则可以完成此工作。无论+-行的顺序如何,匹配的+-行都不需要相邻时,都可以使用。

comm -23 <(grep '^+' plusminus.txt | sort) \
         <(sed -n 's/^-/+/p' plusminus.txt | sort)