使用 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) }'

相关内容