从csv文件bash,sed,bash中删除一行

S1s*_*hus 3 bash command-line sed

我正在寻找一种方法来删除多个csv文件中的行,在bash中使用sed,awk或任何适当的文件以0结尾.

所以有多个csv文件,它们的格式是:

EXAMPLEfoo,60,6
EXAMPLEbar,30,10
EXAMPLElong,60,0
EXAMPLEcon,120,6
EXAMPLEdev,60,0
EXAMPLErandom,30,6
Run Code Online (Sandbox Code Playgroud)

因此该文件将被修改为:

EXAMPLEfoo,60,6
EXAMPLEbar,30,10
EXAMPLEcon,120,6
EXAMPLErandom,30,6
Run Code Online (Sandbox Code Playgroud)

我能看到的一个问题是区分以零结尾的双位数和0本身.

那么任何想法?

AlG*_*AlG 9

使用你的文件,这样的?

$ sed '/,0$/d' test.txt 
EXAMPLEfoo,60,6 
EXAMPLEbar,30,10 
EXAMPLEcon,120,6 
EXAMPLErandom,30,6
Run Code Online (Sandbox Code Playgroud)


Dan*_*tta 5

对于这个特殊的问题,sed正如其他人所指出的那样是完美的.但是,awk更灵活,即您可以在任意列上过滤:

awk -F, '$3!=0' test.csv
Run Code Online (Sandbox Code Playgroud)

这将打印整行第3列不为0.