我希望能够检查包含字符串的变量是否与正则表达式模式匹配。我知道如何使用grep
使用文件执行此操作,但我希望能够仅使用字符串来执行此操作。
例如,要查找变量是否包含.gif的文件名,我希望能够按照这一点做一些事情。
$ STRING=image.gif
$ grep "\.gif$" $STRING
当我运行此操作时,我收到此错误。
grep: image.gif: No such file or directory
有没有办法让grep
将“image.gif”视为我想要搜索的字符串而不是文件的名称?
答案 0 :(得分:4)
您可以使用bash“here string”从变量grep:
grep '\.gif$' <<< "$STRING"
答案 1 :(得分:2)
最简单的方法:
echo "$STRING" | grep "\.gif$"
由于grep
能够从stdin
读取,因此您可以将其调整为任意数量的情况(包括cat
的文件IO,尽管这通常是一个坏主意,因为流更有效)。