我正在处理一个 txt 文件,其中列出了一堆其他 txt 文件,其中很多文件都是我错误地复制的。
我使用的是 macOS,因此列出重复文件的行均以模式 结尾(NUMBER).txt
。我想删除所有不包含此模式的行。
我想出了这个命令来测试正则表达式,但它不起作用,因为它还打印以以下结尾的行(WORD).txt
:
sed '/\(\d\)\.txt$|\(\d\d\)\.txt$|\(\d\d\d\)\.txt$/p' file.txt
我知道我错过了一些东西,但我不知道是什么......感谢您的帮助!
答案1
这应该有效:
sed -E -n '/.*[0-9]+\.txt$/p' file.txt
如果你看一下信息sed,在第 2.1 段中您将找到一些如何使用组合的示例sed -n '...p'
。
上面的命令打印到标准输出。如果您想就地修改文件,请添加该-i
选项。