我正在使用Bash尝试编写一条命令,该命令将获取每个文件的第一个字符不是'a'且文件不以'.html'结尾的文件,但似乎无法使两个文件都能正常工作。
到目前为止,我可以让我的正则表达式匹配以'a'开头并以'.html'结尾的所有文件并将其删除,但是我似乎无法解决的问题是文件以'a'开头并且以不同的文件扩展名结尾。我的正则表达式似乎忽略了第二个要求,而无论如何都将其隐藏。
cat inputfile.txt | sed -n '/^[^a].*[^html$]/p'
输入文件内容:
123
anapple.html
456
theapple.html
789
nottrue.html
apple.csv
12
输出:
123
456
theapple.html
789
nottrue.html
12
答案 0 :(得分:0)
不要尝试编写与要保留的行匹配的模式,而是编写与要删除的行匹配的模式,并使用grep -v
打印不匹配的所有行。
grep -v '^a.*\.html$' inputfile.txt