0

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

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

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

4

3 回答 3

4

您可以在 sed 中使用正则表达式。

sed -i 's/^[0-9]\s+b.*//g' xxx_file

或者

sed -i '/^[0-9]\s+b.*/d' xxx_file

“-i”参数将直接修改文件的内容,您可以删除“-i”并根据需要将结果输出到其他文件。

于 2013-04-07T01:28:00.110 回答
1

awk:

cat yourfile.txt | awk '{if($2!="b"){print;}}'
于 2013-04-07T01:48:35.767 回答
1

awk 工作正常,只需使用如下代码:

awk '{if ($2 != "b") print $0;}' file

如果你想获得更多关于 的用法awk,就man这样吧!

于 2013-04-07T11:04:34.150 回答