Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux AWK-分割文件时自定义文件名_Linux_Bash_Awk_Gawk - Fatal编程技术网

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

Linux AWK-分割文件时自定义文件名,linux,bash,awk,gawk,Linux,Bash,Awk,Gawk,awk'/{start}/{filename=NR.split};{print>filename}'alltickets.txt 每次查找{start}时,此命令都会将文件alltickets.txt拆分为多个文件 现在生成的文件是NR(行数).split 1.split 5.分开 6.拆分 我有一个变量,比如说VAR='xxx' 我希望这个变量包含在文件名中 获得: 1.xxx.split 2.xxx.split 3.xxx.拆分 之后,如果可能的话,我想把这些文件写在一个特定的目录中 你能帮

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

每次查找
{start}
时,此命令都会将文件alltickets.txt拆分为多个文件

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

1.split
5.分开
6.拆分

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

获得:

1.xxx.split
2.xxx.split
3.xxx.拆分

之后,如果可能的话,我想把这些文件写在一个特定的目录中

你能帮我吗

我试过几种方法,但每次都出错


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

尝试一下下面的方法,如果这对您有帮助,请告诉我

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

如果变量具有shell变量的值,请使用
-v var=“$shell\u variable”

变量
var='xxx'
是shell变量吗?是否要将其传递给
Awk
?清楚地说明变量的来源,为什么不把值放在命令中,比如:
awk'/{start}/{filename=NR.xxx.split“};{print>filename}'alltickets.txt
,然后将生成的文件复制到任意位置。此命令用于脚本中。该变量不是环境变量。
awk -v dir='/path/to/files' -v var="$VAR" '
    /{start}/{close(filename); filename=dir "/" NR "." var ".split"}
    {print > filename}
' alltickets.txt`