Bashで変数行をファイルに解析します。

Bashで変数行をファイルに解析します。

;数字または文字列(文字列にスペースは含まれていません=)に設定できる変数がいくらでも含まれるファイルがあるとします。変数はセミコロンで区切られます(スペースは重要ではありません)、各行には異なる変数セットが含まれています。

A = 1; B = ball
A = 2; B = ball; C = C3

次のようなファイルに書き込む方法でファイルを解析したいと思います。

A=1
B=ball

そして、次のような別のファイル:

A=2
B=ball
C=C3

Bashでこれを達成するには?

ベストアンサー1

awkを使用できます。

awk -F ';' '{gsub(/[[:blank:]]/,"");for(i=1;i<=NF;i++)print $i>NR}' file
  • -F ';':フィールド区切り文字をセミコロンに設定します。

  • gsub(/[[:blank:]]/,""):すべてのスペースを削除します。

  • for(i=1;i<=NF;i++)print $i>NR:各行はファイルに関連付けられます。行1はファイル1に移動し、行2はファイル2に移動する式に進みます。各変数値ペアは、対応するファイルの1行に印刷されます。

結果はファイルで、1次のようになります2

$ cat 1
A=1
B=ball
$ cat 2
A=2
B=ball
C=C3

おすすめ記事