我在多行文件中有以下字符串
.....<other lines>
-classpath "${ROOT}/abcjars/*:${ROOT}/lib/*" \
.....<otherlines>
我想检查文件中是否存在类路径行
如果我尝试执行 grep 命令,它会正常工作,
grep '\-classpath \"${ROOT}/abcjars/*' $File
但是如果我在搜索模式中添加冒号 (:) 它就不起作用
grep '\-classpath \"${ROOT}/abcjars/*:' $File
我想 grep 并检查整行是否存在。可能吗?
谢谢
最佳答案
在正则表达式m中,*
有特殊含义,表示匹配前面的字符零次或多次。但是在您的文件中,您没有 :
紧跟在 /
序列之后(因为 *
在它们之间),所以它不匹配。
您没有进行任何正则表达式模式匹配,因此您应该使用 -F
选项来指定这是一个固定字符串。
grep -F -e '-classpath "${ROOT}/abcjars/*:' $File
需要 -e
选项以允许以 -
开头的搜索字符串,否则搜索字符串将被视为选项。
关于linux - 包含冒号的文件中的 Grep 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58596765/