awk を使用して、file1 の各行を、file2 の各行と同じファイル名を持つ新しいファイルに保存します。

awk を使用して、file1 の各行を、file2 の各行と同じファイル名を持つ新しいファイルに保存します。

私は2つのファイルを扱っています。

ファイル1:

Data Source=xyz,61375;User ID=user;Password=[MASKED];Connect Timeout=30;Encrypt=True;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
Value1
Value2

ファイル2:

APPCONFIG.SqlServer__ConnectionString
TES1.PROP__KEY1
TES1.PROP__KEY2

Awkコマンドを使用して、File1の各行をFile2の各行名と呼ばれる新しいファイルに保存したいと思います。

期待される出力: 次の名前の3つの新しいファイル:

/# ls
APPCONFIG.SqlServer__ConnectionString 
TES1.PROP__KEY1
TES1.PROP__KEY2

/# cat APPCONFIG.SqlServer__ConnectionString 
Data Source=xyz,61375;User ID=user;Password=[MASKED];Connect Timeout=30;Encrypt=True;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False

/# cat TES1.PROP__KEY1
Value1

/# cat TES1.PROP__KEY2
Value2

ベストアンサー1

たとえば、次のようにファイルを結合するとpaste非常に簡単になります。

paste file2 file1 | awk -F'\t' '{ print $2 > $1; close($1) }'

おすすめ記事