在通用的shell脚本中,我想使用shell模式匹配来过滤文本文件的行。如何从shell中使用fnmatch?
我有文件名列表中files.txt:
file1.txt
file2.sh
file3.png
而且我有图案patterns.txt列表:
other_file.txt
file2.*
如果我不得不在图案的正则表达式.txt,我可以这样做:
$ grep -v -f patterns.txt files.txt
但我想使用shell globbing模式。我发现了C函数fnmatch,但没有shell/unix命令来使用它。
这可以在shell中完成,但它会变成* slooow *。我建议你使用不同的语言。 –
你能简单地将你的shell表达式翻译成正则表达式吗?即使自动化翻译的基本版本可能比替代方案更好。 –
我希望我只是错过了像grep这样的与globs配合使用的命令。翻译模式也不是微不足道的。 – maikel