我有一个文本文件,其中的字段用','符号分隔。我想删除包含'S'和'A'等图案的行。
例如,假设我的文件数据如下:
S,F,T,Y
B,I,J,O
S,O,L,H
R,I,O,P
A,H,K,L
U,I,O,P
A,I,S,U
我已尝试过单一模式的代码,请告诉我如何在此命令中使用这两种模式:
sed -i '/S/d' 'file.txt'
答案 0 :(得分:2)
试试这个命令,你应该逃避' |'字符,代表交替。 (A | B,其中A和B可以是任意RE,创建一个与A或B匹配的正则表达式)
sed -e '/S\|A/d' file.
或
sed -r -e '/S|A/d' file.
答案 1 :(得分:0)
这是一个使用grep
的工作解决方案(我不熟悉sed
不幸......):
grep -vE 'S|A' input.txt > output.txt
它将在output.txt
中写入input.txt
的所有行,其中不包含' A'或者' S'。
输出:
B,I,J,O
R,I,O,P
U,I,O,P
答案 2 :(得分:0)
@zhujs为您的示例提供了相应的解决方案,但为了将来参考,您还可以使用多个multiple
sed
指定-e
个命令
sed -e '/A/d' -e '/D/d' file