2017-08-22 67 views
0

awk '/{start}/{filename=NR".split"}; {print > filename}' alltickets.txt的Linux AWK - 自定義的文件名,而文件分割

這個命令在幾個文件中每個找到{start}時間分割文件alltickets.txt。

現在生成的文件是NR(行數).split。

1.split 5.split 6.split

我有一個變量,假設VAR='xxx' 而且我想,這個變量包含在文件名

獲得:

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

之後,如果可能的話我想寫這些文件在一個特定的目錄。

你能幫我嗎?

我試過幾種選擇,但每一次我得到了一個錯誤。

您可以提出除awk以外的其他解決方案。

+1

'VAR ='xxx''是一個shell變量?你想把它傳遞給'Awk'?清楚地說明其中變量來自 – Inian

+0

爲什麼不乾脆把值的命令,就像這樣:'awk的「/{start}/{filename=NR".xxx.split「}; {print> filename}'alltickets.txt',然後將生成的文件複製到任意位置。 –

+0

該命令用於腳本中。該變量不是一個環境變量。 –

回答

1

請嘗試以下一次,讓我知道這是否有助於你。

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

使用-v var="$shell_variable"的情況下,你的變量有shell變量的值。

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