fgrep 行首?

Yim*_*ong 4 grep bash quoting

我想fgrep用 . 中的句点和其他元字符来处理搜索文字grep,但我需要确保该词位于行的开头。

例如,fgrep 'miss.'miss.准确匹配哪个是我想要的,但也匹配admiss.co. miss.我不想要的。

我也许能够转义元字符,例如grep '^miss\.',但源是如此之大,我一定会错过一些东西,然后需要再次运行它(将需要整个晚上)。在某些情况下,例如\1,转义代码是具有“元含义”的代码。

有什么办法解决这个问题吗?

Sté*_*las 5

使用 GNU,grep如果使用 PCRE 支持构建并假设$string不包含\E,则可以执行以下操作:

grep -P "^\Q$string"
Run Code Online (Sandbox Code Playgroud)

随着perlrindex

perl -sne 'print if rindex($_, $string, 0) == 0' -- -string="$string"
Run Code Online (Sandbox Code Playgroud)

awk

S=$string awk 'index($0, ENVIRON["S"]) == 1'
Run Code Online (Sandbox Code Playgroud)