我正在使用Bash尝试编写一个命令来获取第一个字符不是'a'且文件不以'.html'结尾的每个文件,但似乎无法使两者都正常工作。
到目前为止,我可以让我的正则表达式匹配所有以'a'开头并以'.html'结尾的文件并删除它们但我的问题似乎无法解决的问题是当文件以'a'开头并以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
不要尝试编写与要保留的行匹配的模式,而是编写与要删除的行匹配的模式,并使用grep -v
打印与其不匹配的所有行。
grep -v '^a.*\.html$' inputfile.txt