2016-09-16 1 views
0

У меня есть 300 текстовых файлов в директории в следующем форматеIterate над файлами и строками обновления в каталоге, предпочтительно с помощью 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 

Я хотел бы перебрать все эти текстовые файлы и выполнять расчет на 4-й строке обе колонки, используя формулу

(Value of fourth row /0.824198)*0.8490061 

и новый файл с новым именем regional_vol_WM2_prop.txt должен быть создан с первые три строки, имеющие одинаковое значение и четвертую строку с обновленным значением с вновь вычисленного выходом

Любые предложения оценены.

+0

Вы что-то пробовали? – redneb

+0

Разве это не вопрос * SuperUser *? – MariusMatutiae

+0

4-я строка имеет две колонки, какую ценность вы интересуете? –

ответ

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 считает, что filename arg является частью awk-скрипта, чего он не должен. Это имя файла glob в bash. –

+0

@ DannyDaglas Нет, у меня нет конечной одинарной кавычки, нормальное имя файла идет по следующему соглашению об именах: regional_vol_GM_122.txt – DevanDevak

 Смежные вопросы

  • Нет связанных вопросов^_^