awk はファイル変数のキーワードの下に値を格納します。

awk はファイル変数のキーワードの下に値を格納します。

awkを使用して、特定の単語の下のすべての行をLabel変数に印刷しようとします$var。この例には2つの値がありますが、必ずしもそうではありませんが(毎回異なる場合があります)、単語は常に同じで同じ場所にあります。echo単語が見つかった行を除いて、両方の試みが実行されました。

文書

[Header]                                
Name    1                                                   

[ID]                                
1
1                               

[ID1]                               

[Info]                              
Label   xxx
1,,,,xxx
2,,,,yyy

ああ1

var=$(awk -vvar="Label" '($1 == var) {print $0}' file)
echo "$var"

Label   xxx

ああ2

var=$(awk '/Label/{for(i=0;i<1;i++){print;getline}}' file)
echo "$var"

Label   xxx

欲しい

echo "$var"
1
2

答え1

変数の使用 - 私が呼び出した例ではp。タグを見つけたら変数を設定します。次の行から始めて、その行を印刷してください。

var=$(awk 'p==1{print} /Label/{p=1}' file)

または、変数を使用して「タグ」検索文字列を保存します。

var=$(awk -vlab="Label" 'p==1{print} $1==lab{p=1}' file)

関連情報