如何删除unix文件中两个位置两个位置都有两个模式的行

时间:2019-07-11 14:23:51

标签: shell unix awk sed

我有一个像这样的文件。

aabbccde
aaeeffcc
aaffccdf
affdfdfc

我想检查第二个位置= a和第七个位置= d,应删除该行。

最终输出应该是

aaeeffcc
affdfdfc

我正在尝试使用sed,但一次只能检查1个位置。

sed  '/^.\{1\}a/d' f1.dat > f2.dat

这将删除f1文件第二个位置带有“ a”的所有行,并创建一个新的f2文件。

如何通过同时检查两个条件来删除该行。位置2 =“ a”和位置7 =“ d”

1 个答案:

答案 0 :(得分:0)

请您尝试以下。

awk 'substr($0,2,1)=="a" && substr($0,7,1)=="d"{next} 1' Input_file

第二个解决方案:

awk '!/^.a....d/ '  Input_file