簡體   English   中英

如果使用awk或sed發生條件,則刪除行

[英]delete a line if a condition occurs using awk or sed

只需要您的幫助。 如果要使用awk或sed發生這種格式,我想刪除一行:

BSC+number     BSC+number

例如:

BSC112         BSC112
core           tag
red            blue
BSC113         BSC114
flu            joke

輸出應為:

core           tag
red            blue 
flu            joke  

預先感謝您的幫助。

單程:

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

您可以將-i選項與sed一起使用,以將更改存儲回文件:

$ sed -i '/^BSC[0-9]\+\s\+BSC[0-9]\+$/d' file

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

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

輸出:

core           tag
red            blue 
flu            joke 

其他方式:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM