2016-09-16 55 views
0

我有一個目錄300個文本文件格式如下遍歷目錄中的文件和更新行,最好使用bash腳本

regional_vol_WM1.txt 

    651328 651328 
    553949 553949 
    307287 307287 
    2558 2558  



regional_vol_WM2.txt 

    651328 651328 
    553949 553949 
    307287 307287 
    2138 2138 

我想在遍歷所有這些txt文件,並在第4行進行計算使用公式

(Value of fourth row /0.824198)*0.8490061 

,並用一個新的名字regional_vol_WM2_prop.txt一個新文件兩列應該被創建,與具有相同的值和第四行與更新後的值與新計算出的輸出

前三行

任何建議表示讚賞。

+0

您嘗試過什麼嗎? – redneb

+0

這不是一個*超級用戶*類問題嗎? – MariusMatutiae

+0

第四行有兩列,您對哪些值感興趣? –

回答

2
#!/bin/bash 

awk ' 
FNR == 1 { 
    newfilename = FILENAME ; sub(".txt", "_prop.txt", newfilename) 
    printf "" > newfilename 
} 
FNR == 4 { 
    $1=($1/0.824198)*0.8490061 
    $2=($2/0.824198)*0.8490061 
} 
{ 
    print >> newfilename 
} 
' regional_vol_WM*[0-9].txt 
+0

當我在我的目錄中運行awk文件時出現錯誤:以下是錯誤awk:15:意外字符'。' – DevanDevak

+0

你確定你有終止單引號? awk認爲文件名arg是awk腳本的一部分,它不應該這樣做。它是bash中的一個文件名glob。 –

+0

@DannyDaglas不,我沒有終止單引號,正常的文件名遵循命名約定:regional_vol_GM_122.txt – DevanDevak

相關問題