shell Awk:将awk输出重定向到其他文件夹

n3h0vuf2  于 2023-03-13  发布在  Shell
关注(0)|答案(1)|浏览(1171)

我正在使用awk命令从secretData.file拆分证书。我需要将这些拆分的证书(filename)存储到名为server/certs的不同文件夹中。我正在使用以下命令执行此操作

export CERT_PATH='/server/certs'
awk '/#/{fileName=$0;next}{print fileName > $CERT_PATH/fileName;}' secretData.file

错误显示:

awk: illegal field $(), name "CERT_PATH"

我也试过这个:

awk '/#/{fileName=$0;next}{print fileName > '$CERT_PATH'/fileName;}' secretData.file

但它给出了一个不同的误差:

awk: division by zero

任何人都可以请指出问题可能是什么,或者有任何其他的方法,我可以做到这一点?我能够找到解决方案,以保存awk输出到不同的文件夹的文件,但这里的情况有点不同。将感谢您的帮助。

mbyulnm0

mbyulnm01#

使用awk的-v选项将shell变量传递给awk:

awk -v cert_path="$CERT_PATH"  '/#/{fileName=$0;next}{print fileName > cert_path "/fileName";}' secretData.file

我还修复了重定向中的引用,应为print fileName > cert_path "/fileName";

相关问题