我要刪除一條線,如果它包含指定一個值線。awk中刪除包含數據
2 5 8
1 3 7
8 5 9
所以,如果我想刪除包含7作爲第三個字段行:
{
if($3 == 7){
####delete the line
}
}
我要刪除一條線,如果它包含指定一個值線。awk中刪除包含數據
2 5 8
1 3 7
8 5 9
所以,如果我想刪除包含7作爲第三個字段行:
{
if($3 == 7){
####delete the line
}
}
應該足以說
$ awk '$3 != 7'
注意,這個數值比較,並將省略第三個字段所在的行,例如「0.7e1」,但它適用於您提供的樣本數據。
刪除包含7
awk '!/7/' yourFile
其他的答案工作的線。這裏的原因
awk的標準處理模式是讀一個輸入行,任選地匹配線,並且如果匹配的(可選地)打印該輸入。其他的解決方案使用一個否定匹配,所以線被印刷除非匹配製成。
您的代碼示例不使用否定匹配:它說:「如果事情是真實的,做到這一點。」因爲您要刪除輸入,所以當您匹配該目標時,您可以跳過打印。
{
if($3 == 7){
#skip printing this line
next
}
}
IHTH。
這句法不tcsh的工作。需要逃避! – ThomasMcLeod
轉義'!'不是解決方案。解決方案是不使用'tcsh'! –