2016-01-28 104 views
0

如何通过awk命令分割文件,并自定义输出文件的名称自定义输出文件名?需要使用awk命令

我都试过了,

awk -v RS=$val '{ outfile = "'$filename'""." NR "'.${extension}'"; print > outfile}' $file 
+0

示例:文件名的 输出应该fileName001,fileName002,fileName003 .... fileName999。 我试图对其进行自定义。但是找不到任何命令。 电流输出: FILENAME1,文件名fileName3 ...... fileName4 所需的输出: fileName001,fileName002,file003 ....... fileName999 –

+2

不要在你自己的问题添加注释 - 只需编辑你的问题,如果你有东西要添加。还包括样本输入和预期输出。 –

回答

1

您可以使用sprintf创建文件名作为

outputfile = sprintf ("filename%03d.txt", NR); 

有些事情在你的脚本要注意,

  • 您无法访问shel升变量直接在awk脚本,您需要使用-v甲酸创建awk变量。

    因此脚本应该像

    awk -v filename=$filename -v extension=$extension '{ outputfile = sprintf (filename"%03d"extension, NR); print > outputfile }' 
    
  • awk没有任何具体的concatenation operator,只是写2串在一起,连接它们。

+0

我尝试过,但我得到一个语法错误。请包括RS = $ VAL这个问题,以及在命令中,因为它是在其上的文件也越来越分裂 –

+0

因素@RaghvendraNayak这仅仅是脚本如何被修改的例子。您可以添加了逻辑,让它为你的要求工作。希望能帮助到你 :) – nu11p01n73R