perl – 如果特定列包含零,如何删除整行?

前端之家收集整理的这篇文章主要介绍了perl – 如果特定列包含零,如何删除整行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要删除包含的行
第5列中的0值.

之前:

1QWO     10      5     45    100    7.5
1R0R      6      3     15    100    8.5
1R5M      4      0      6      0    6.5
1R8S      4      0      6      0      6
1R9L      2      1      1    100    6.3
1RG8      6      0     15      0    5.8
1RJU     10      0     45      0    7.2
1RKI     12      6     66    100    4.6

后:

1QWO     10      5     45    100    7.5
1R0R      6      3     15    100    8.5
1R9L      2      1      1    100    6.3
1RKI     12      6     66    100    4.6

任何一个班轮都会非常有帮助.

我知道:

sed '/0/d' file_name

但是上面的命令将从所有列中删除0.

解决方法

使用便携式sed,您可以这样做:

sed '/\([^ ]\+ \+\)\{4\}0\+ /d'

这样您就可以将检查限制为零到第五列.

使用perl,您可以使用自动拆分,注意您不需要为$F [4]指定条件,因为它是隐式的:

perl -ane 'print if $F[4]'

两种情况下的输出

1QWO     10      5     45    100    7.5
1R0R      6      3     15    100    8.5
1R9L      2      1      1    100    6.3
1RKI     12      6     66    100    4.6

猜你在找的Perl相关文章