簡體   English   中英

包含冒號的文件中的 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 並檢查整行是否存在。 可能嗎?

謝謝

在正則表達式中, *有特殊含義,表示匹配前面的字符零次或多次。 但是在您的文件中,您沒有:緊跟在/序列之后(因為*在它們之間),所以它不匹配。

您沒有進行任何正則表達式模式匹配,因此您應該使用-F選項來指定這是一個固定字符串。

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

需要-e選項以允許以-開頭的搜索字符串,否則搜索字符串將被視為一個選項。

使用 escaping 字符

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

如果仍然是同樣的問題,請嘗試使用 grep 正則表達式標志

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM