我有一个包含矩阵的文件。例如,我有:
1 a 2 b
2 b 5 b
3 d 4 b
4 b 7 b
我知道使用sed
命令删除具有特定字符串的特定行很容易。但是如果我只想删除第二个字段的值为b(即第二行和第四行)的那些行呢?
答案 0 :(得分:4)
你可以在sed中使用正则表达式。
sed -i 's/^[0-9]\s+b.*//g' xxx_file
或
sed -i '/^[0-9]\s+b.*/d' xxx_file
“ - i”参数将直接修改文件的内容,您可以删除“-i”并将结果输出到其他文件中。
答案 1 :(得分:1)
AWK:
cat yourfile.txt | awk '{if($2!="b"){print;}}'
答案 2 :(得分:1)
awk工作正常,只需使用如下代码:
awk '{if ($2 != "b") print $0;}' file
如果您希望更多地使用awk
,只需man
它!