我有一个以下文件。 我想用sed和regex解决它。
Alex Trump, New York, 123445-4567
Jimmy Carter, Los Santos, 123245-3x20
Alec Baldwin, babylon 5,
Luke Skywater, cloud city, 223345-1420
因此,当我运行它时,它将删除所有匹配的行,并离开Jimmy和Alec或将未找到的内容写入新文件。
如果我使用正则表达式,我知道下面的代码将查找匹配的数字
\d\d\d\d\d\d[-]\d\d\d\d$
我想要这样的东西。 猫文件| sed -r \ d \ d \ d \ d \ d \ d [-] \ d \ d \ d \ d $ 因此,当我运行它时,它将删除所有匹配的行,并离开Jimmy和Alec或将未找到的内容写入新文件。
答案 0 :(得分:1)
您可以使用
sed -E '/[0-9]{6}-[0-9]{4}/d' file > newfile
请参见this sed
demo。
详细信息
-E
-POSIX ERE标志,无需在量词中转义{
和}
[0-9]{6}-[0-9]{4}
-正则表达式匹配6位数字,-
再匹配4位数字d
-删除与正则表达式模式匹配的行。