我有成百上千行的文件,我需要删除一些遵循模式的行,所以我用regex访问了SED

A,12121212121212,foo,bar,lorem
C,32JL,JL
C,32JL,JL
C,32JL,JL
C,32JL,JL
A,21212121212121,foo,bar,lorem
C,32JL,JL
C,32JL,JL
C,32JL,JL
A,9999,88888,77777

我需要删除所有以“A”开头以“lorem”结尾的行
预期产量-
C,32JL,JL
C,32JL,JL
C,32JL,JL
C,32JL,JL
C,32JL,JL
C,32JL,JL
C,32JL,JL
A,9999,88888,77777

我做了正则表达式:
^(A).*(lorem)

它在我的文本编辑器中匹配(Sublime,UltraEdit)
在UNIX shell中
sed '/^(A).*(lorem)/d' file.txt

但不知怎么的,它不起作用,它显示了整个文件,我不明白为什么。
有人能帮我吗?

最佳答案

$ sed '/^A.*lorem$/d' file.txt

^A:以A开头
.*:中间的东西
lorem$:以lorem结尾

08-26 12:43