ファイルから文字列を検索し、それに続く文字列を変数に保存します。

ファイルから文字列を検索し、それに続く文字列を変数に保存します。

例: これがファイルにあるとします。

AB: Test CD: Testing EF: Rest

CDを検索し、「テスト」を変数に保存するスクリプトが必要です。いくつか試してみましたが、awkなんだか進歩はありません。

答え1

grepPerl スタイルの正規表現を使用すると、今後戻ることができます。

variable_a=`grep -Po '(?<=CD: )[^ ]+' file.txt`

Bashで言う:

  • 名前付き変数を作成し、逆引用variable_a符内のコマンドで生成された値を割り当てます。
  • grepPerl正規表現()を使用し、行()の一致部分-Pのみを返す必要があります。-o
  • [^ ]パターンは、「CD:」の後に空白以外の文字()が1つ以上続く必要があります。
  • "file.txt"でパターンを検索してください。

答え2

公開された入力/出力の例が可能なすべてのユースケースを網羅するとします。

すべてのsedの場合:

$ var=$(sed -n 's/.*CD: \([^ ]*\).*/\1/p' file)
$ echo "$var"
Testing

いくつかの奇妙な場合:

$ var=$(awk 'sub(/.*CD: /,""){sub(/ .*/,""); print}' file)
$ echo "$var"
Testing

関連情報