如果这些行仅包含两个值(列),我想删除具有特定字符串的所有文件行。我尝试使用这个 sed 但这会删除包含该字符串的所有行
sed '/string/d' file
ex 对于 XX 字符串,输入文件是
A B C D
XX 5 6
XX 2
XX 1 2 3
输出文件是
A B C D
XX 5 6
XX 1 2 3
答案1
一种方法是使用模式部分评估为 true 以默认打印该行:
awk -v str="XX" '
NR == 1 || $1 != str || NF != 2
' file
假设目标字符串仅在第一个字段中匹配。