我正在使用awk命令拆分文件,我想使用变量命名文件但是我运气不好。这是一行:
awk '/STX/ {f="$tp"++i;} {print > f}' $tp.mixed
这只是创建$ tp#作为名称的文件。
我阅读了帖子“如何在awk脚本中使用shell变量”,但无法弄清楚如何将这个应用于我的问题。
答案 0 :(得分:3)
您可以使用此awk命令从命令行传递变量:
awk -v tp="$tp" '/STX/{close(f); f=tp (++i)} f{print > f} END{close(f)}' "$tp.mixed"
同样重要的是关闭您打开输出的文件。通过调用close
,我们可以避免因大量打开的文件而导致内存泄漏。
答案 1 :(得分:0)
awk -v tp="$tp" '/STX/ {if (f) close(f); f = tp (++i)} {print > f} END{if (f) close(f)}' $tp.mixed
工作
谢谢大家的帮助