Bash删除具有零值的行

Bash删除具有零值的行,bash,file,cut,Bash,File,Cut,我有一个1500行长的文件,其中包含cpu值,但不知怎的,在第二行有0行。是否可以删除bash命令中仅包含0的第二行 8 0 9 0 10 0 10 0 8 0 9 0 删除所有零 awk 'NR % 2 != 0' file 使用grep-v: -v, --invert-match Selected lines are those not matching any of the specified patterns. 命令: grep -v -e "^0$" f

我有一个1500行长的文件,其中包含cpu值,但不知怎的,在第二行有0行。是否可以删除bash命令中仅包含0的第二行

8
0
9
0
10
0
10
0
8
0
9
0

删除所有零

awk 'NR % 2 != 0' file
使用
grep-v

-v, --invert-match
             Selected lines are those not matching any of the specified patterns.
命令:

grep -v -e "^0$" file
问题是,它将删除所有的“0”行

删除偶数行

awk 'NR % 2 != 0' file
在这种情况下,必须确保所有偶数行都是要删除的行

删除“0”的偶数行

awk 'NR % 2 != 0 || ! /0/' file

如果要删除每一行,但仅当它包含
0
,则此行将有助于:

awk'($0==0)和&(NR%2==0){next}{print}'cpu_values.txt


这意味着,如果输入行等于0,并且是偶数行,则跳过它。否则,请打印该行。

是否要删除每一行的零,或删除每一行的第二行,或删除每一行的零?您所说的“cpu值”是什么意思?这个文件是什么?可以使用-v0吗?例如,我不希望它删除值为10的行。只有在它为0的地方。grep-v-e“^0$”将起作用,因为它将删除它仅为0的行。对吗?没错表示行开始,$表示行结束。为什么
cat文件| grep-v-e“^0$”
而不仅仅是
grep-v-e“^0$”文件
?@iknowpython您确定有一半行是0吗?