2017-07-12 96 views
0

我正在循環awk數組來打印輸出,然後希望將此輸出插入另一個文件,並遵循特定的正則表達式。有什麼想法嗎?AWK陣列,重定向輸出

for(i=1; i<=n; i++){      
     printf("TILE%d_STRIP%d_TRANSLATE0,%.1f,%.1f\n",tile_num,i,x_array[i],y_array[i]); 
    } 

主要生產:

TILE1_STRIP1_TRANSLATE0,4122.9,5400.0 
TILE1_STRIP2_TRANSLATE0,4122.9,5535.0 
TILE1_STRIP3_TRANSLATE0,4122.9,5670.0 
TILE1_STRIP4_TRANSLATE0,4122.9,5805.0 
TILE1_STRIP5_TRANSLATE0,4122.9,5940.0 

然後我希望這些線插入到另一個文件這兩條線之間

Site,Single,Single 
<EOSUBSITES> 
+3

發佈一些相關數據,請到目前爲止的工作和預期的輸出。 –

回答

0

您可以使用一個bash進程替換:

sed -i '/^Site,Single,Single$/ r'<(awk '...') another_file 

The <()被bash視爲文件名,並且括號內容將被執行以生成「文件」的內容。

我把流程替換與前面的單引號字符串(中間沒有空格)連接起來,以形成運行的sed程序。

+0

我可以在該進程替換中使用bash變量嗎? – cbrad97

+0

是的,你可以。圓括號將工作放在一個子外殼中,但您的當前變量可用。 –