如何使用Linux命令(sed?)删除文件中的特定行?

时间:2013-04-07 01:20:16

标签: linux sed

我有一个包含矩阵的文件。例如,我有:

1 a  2  b
2 b  5  b
3 d  4  b
4 b  7  b

我知道使用sed命令删除具有特定字符串的特定行很容易。但是如果我只想删除第二个字段的值为b(即第二行和第四行)的那些行呢?

3 个答案:

答案 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它!