Linux AWK - 分割文件时的自定义文件名

时间:2017-08-22 12:03:34

标签: linux bash awk gawk

awk '/{start}/{filename=NR".split"}; {print > filename}' alltickets.txt

此命令在每次找到{start}时将文件alltickets.txt拆分为多个文件。

现在生成的文件是NR(行号).split。

1.split 5.split 6.split

我有一个变量,让我们说VAR='xxx' 我希望这个变量包含在文件名

获得:

1.xxx.split 2.xxx.split 3.xxx.split

之后如果可能,我想将这些文件写在特定目录中。

你能帮助我吗?

我尝试了几种选择,但每次出错都是如此。

您还可以提出除awk之外的其他解决方案。

2 个答案:

答案 0 :(得分:1)

尝试关注一次并告诉我这是否对您有所帮助。

awk -v var="value_of_variable" '/{start}/{filename=NR "." var ".split";}; {print > filename}'   Input_file

如果您的变量具有shell变量的值,请使用-v var="$shell_variable"

答案 1 :(得分:0)

awk -v dir='/path/to/files' -v var="$VAR" '
    /{start}/{close(filename); filename=dir "/" NR "." var ".split"}
    {print > filename}
' alltickets.txt`