Shell 使用grep-w更紧密的单词边界

Shell 使用grep-w更紧密的单词边界,shell,grep,Shell,Grep,我只想将输出作为第一个字符串您只需在表达式的末尾添加一个空格,它将适用于您给出的示例。选项-w仅要求匹配由非字母限定。如果您有更严格的要求,则需要明确指定它们 因为普通的grep不支持开箱即用的分组和替换,所以我在这里使用grep-E(又称egrep): 为此,请使用-o选项。它将只打印行的匹配部分: grep -E '(^|[[:space:]])/opt/VRTSodm/lib/libodm64.so([[:space:]]|$)' PACKAGE/VRTSodm_f2 所以所需的输出是…

我只想将输出作为第一个字符串

您只需在表达式的末尾添加一个空格,它将适用于您给出的示例。

选项-w仅要求匹配由非字母限定。如果您有更严格的要求,则需要明确指定它们

因为普通的
grep
不支持开箱即用的分组和替换,所以我在这里使用
grep-E
(又称
egrep
):


为此,请使用
-o
选项。它将只打印行的匹配部分:

grep -E '(^|[[:space:]])/opt/VRTSodm/lib/libodm64.so([[:space:]]|$)' PACKAGE/VRTSodm_f2

所以所需的输出是…?是的,字符串的精确匹配如果我在命令行上执行,它可能会重复,但不会在脚本中执行。PATCH_FILE_PERMISSION=
grep-w“${BASE_FILE_NAME}”${PATH1}/${i}{u f2}awk'{print$2}'
那么当你说“它不工作”是什么意思?它挂起并消耗100%的CPU?它能关掉你的电脑吗?它会清空你的银行账户?您没有帮助我们帮助您。我在其中的BASE_FILE_NAME后面没有看到空格。/opt/VRTSodm/lib/libodm64.so是一个文件内容,它在运行时保存在一个变量中PATCH_FILE_PERMISSION=grep-w“${BASE_FILE_NAME}”${PATH1}/${I}}f2 | awk'{print$2},所以您基本上想要
PATCH_FILE_PERMISSION=$(awk-b=“$BASE_FILE_NAME”==1){print$2}'”$PATH1/${i}\u f2)
grep -E '(^|[[:space:]])/opt/VRTSodm/lib/libodm64.so([[:space:]]|$)' PACKAGE/VRTSodm_f2
grep -o '/opt/VRTSodm/lib/libodm64\.so\.1\?' your_file