输入:
titi;0;1;2;3;1;4;5;6;7
toto;0;1;2;3;1;4;5;6;7
dada;0;1;2;3;0;4;5;6;7
如何删除包含以下内容的行
0
是在第5个分号之后了吗?
预期输出:
titi;0;1;2;3;1;4;5;6;7
toto;0;1;2;3;1;4;5;6;7
答案 0 :(得分:2)
Awk比sed更好地处理基于列的内容:
awk -F';' '$6' file
答案 1 :(得分:2)
如果必须使用sed:
sed -Ei '/^([^;]*;){5}0/d' file.txt
d
告诉sed如果前面的模式匹配,则删除行答案 2 :(得分:0)
您可以尝试使用分号作为分隔符的awk
awk -F";" ' $6!=0 { print } ' input_file
使用您的输入
$ cat bitbyte.txt
titi;0;1;2;3;1;4;5;6;7
toto;0;1;2;3;1;4;5;6;7
dada;0;1;2;3;0;4;5;6;7
$ awk -F";" ' $6!=0 { print } ' bitbyte.txt
titi;0;1;2;3;1;4;5;6;7
toto;0;1;2;3;1;4;5;6;7
$
答案 3 :(得分:0)
请您尝试以下。
awk -F';' '$6==0{next} 1' Input_file