2013-10-04 33 views
0
[root]grep -w "/opt/VRTSodm/lib/libodm64.so" PACKAGE/VRTSodm_f2 
/opt/VRTSodm/lib/libodm64.so -r-xr-xr-x 
/opt/VRTSodm/lib/libodm64.so.1 -r-xr-xr-x 

我想要的輸出作爲第一串僅緊縮字邊界-w

+0

所以期望的輸出是...? – fedorqui

+0

是完全匹配的字符串 – giri

+0

而不是'root'。 – tripleee

回答

0

您可以在表達式的末尾只需添加一個空格,它會爲你給的例子工作。

+0

我也做了同樣的一個,但它不起作用 – giri

+0

「它不起作用」對我們沒有什麼幫助。 –

+0

它的作品,如果我在命令行上,但不是在腳本中。 PATCH_FILE_PERMISSION ='grep -w「$ {BASE_FILE_NAME}」$ {PATH1}/$ {i} _f2 | awk'{print $ 2}'' – giri

0

-w選項僅僅需要非比例的匹配。如果您有更嚴格的要求,則需要明確指定它們。

由於純grep不支持分組和交替開箱,我使用grep -E(又名egrep)位置:

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

/opt/VRTSodm/lib/libodm64.so是在運行時保存在一個變量中的文件內容 PATCH_FILE_PERMISSION = grep -w「$ {BASE_FILE_NAME}」$ {PATH1}/$ {i} _f2 | awk'{print $ 2}' – giri

+0

所以你基本上想'PATCH_FILE_PERMISSION = $(awk -v b =「$ BASE_FILE_NAME」'$ 1 == b {print $ 2}'「$ PATH1/$ {i} _f2)' – tripleee

0

使用-o選項爲。它將只打印該行的匹配部分:

grep -o '/opt/VRTSodm/lib/libodm64\.so\.1\?' your_file