sed、awk、またはgawkを使用して検索と置換などを行う方法について、多くの例とmanページを参照しています。
しかし、私の場合、特定の値を抽出するためにテキストファイルに対して実行する正規表現があります。検索と置換を行いたくありません。これは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