包含冒号的文件中的 Grep 字符串

Grep string in a file containing colon

我在多行文件中有以下字符串

.....<other lines>
-classpath "${ROOT}/abcjars/*:${ROOT}/lib/*" \
.....<otherlines>

我想检查文件中是否存在类路径行

如果我尝试使用 grep 命令,它会正常工作,

grep '\-classpath \"${ROOT}/abcjars/*' $File

但是如果我在搜索模式中添加冒号 (:) 它就不起作用

grep '\-classpath \"${ROOT}/abcjars/*:' $File

我想 grep 并检查整行是否存在。可能吗?

谢谢

使用转义字符

grep '\-classpath \"${ROOT}/abcjars/\*:' $File

如果问题仍然存在,请尝试使用 grep regexp 标志

在正则表达式m中,*有特殊含义,表示匹配前面的字符零次或多次。但是在您的文件中,在 / 序列之后没有 : (因为 * 在它们之间),所以它不匹配。

您没有进行任何正则表达式模式匹配,因此您应该使用 -F 选项来指定这是一个固定字符串。

grep -F -e '-classpath "${ROOT}/abcjars/*:' $File

需要 -e 选项以允许以 - 开头的搜索字符串,否则搜索字符串将被视为选项。