正则表达式以匹配第一个字符和文件扩展名

时间:2019-03-08 16:11:05

标签: regex regex-negation

我正在使用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

1 个答案:

答案 0 :(得分:0)

不要尝试编写与要保留的行匹配的模式,而是编写与要删除的行匹配的模式,并使用grep -v打印不匹配的所有行。

grep -v '^a.*\.html$' inputfile.txt
相关问题