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

Linux AWK - custom filename while split a file

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 之外的其他解决方案。

尝试关注一次,如果这对您有帮助,请告诉我。

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

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

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