我看到很多關於如何使用sed,awk或gawk進行搜索和替換的示例和手冊頁。如何使用sed,awk或gawk打印只匹配的內容?
但在我的情況下,我有一個正則表達式,我想運行一個文本文件來提取特定的值。我不想做搜索和替換。這是從bash調用的。讓我們用一個例子:
實例的正則表達式:
.*abc([0-9]+)xyz.*
例輸入文件:
a
b
c
abc12345xyz
a
b
c
,因爲這聽起來那麼簡單,我無法弄清楚如何調用SED/AWK/GAWK正確。我希望做的,是從我的bash腳本中有:
myvalue=$(sed <...something...> input.txt)
事情我已經嘗試過包括:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing
哇...人們把這個問題投下來-1?這個問題真的不恰當嗎? – 2009-11-14 09:11:00
使用Regex和強大的命令行工具(如sed/awk或vi,emacs或teco等編輯器)可能更像編程,而不僅僅是使用某些ol應用程序。 IMO屬於SO,超過SU。 – Dereleased 2009-11-14 09:16:31
也許它被拒絕了,因爲它的初始形式沒有明確地定義它的一些要求。它仍然沒有,除非你閱讀OP對答案的評論(包括當事情變成梨形時刪除的那個)。 – pavium 2009-11-14 09:45:31