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`