1

只需要你的帮助。如果使用 awk 或 sed 出现这种格式,我想删除一行:

BSC+number     BSC+number

例如:

BSC112         BSC112
core           tag
red            blue
BSC113         BSC114
flu            joke

输出应该是:

core           tag
red            blue 
flu            joke  

预先感谢您的帮助。

4

4 回答 4

6

单程:

$ sed '/^BSC[0-9]\+\s\+BSC[0-9]\+$/d' file 
core           tag
red            blue 
flu            joke 

您可以使用-i选项 withsed将更改存储回文件:

$ sed -i '/^BSC[0-9]\+\s\+BSC[0-9]\+$/d' file
于 2013-05-09T08:50:25.890 回答
5

您也可以使用 grep 执行此操作:

grep -v 'BSC[0-9]\+[[:space:]]\+BSC[0-9]\+' infile

输出:

core           tag
red            blue 
flu            joke 
于 2013-05-09T08:54:39.217 回答
3

其他方式:

perl -lne 'print unless(/BSC\d+\s+BSC\d+/)' your_file

测试:

> cat temp
BSC112         BSC112
core           tag
red            blue
BSC113         BSC114
flu            joke
> perl -lne 'print unless(/BSC\d+\s+BSC\d+/)' temp
core           tag
red            blue
flu            joke
于 2013-05-09T11:35:07.620 回答
0

awk '!/BSC/{print}' 输入 > 输出

于 2019-01-22T23:57:54.813 回答