2016-02-17 2 views
0

Я хочу использовать bash для чтения одного столбца из одного файла и деления на один столбец в текущем файле и замены столбца.Bash: прочитайте один столбец из одного файла и разделите его на один столбец в текущем файле

, например, я один файл с именем input.txt

1 2 3 
1 4 3 
1 8 3 

И я хочу прочитать второй столбец файла и разделить с 3-го столбца текущего aim_file.txt файла:

1 1 4 
3 4 8 
8 8 16 

Так что я получил result.txt:

1 1 2 
3 4 2 
8 8 2 

ответ

2

Использование AWK вы можете сделать:

awk 'NR==FNR{a[FNR]=$2; next} a[FNR]{$3 /= a[FNR]} 1' input.txt aim_file.txt 

Выход:

1 1 2 
3 4 2 
8 8 2 
  • Мы первый итерацию input.txt и сохранить 2-й столбец в ассоциативном массиве по индексу строки #
  • Далее в то время как итерация aim_file.txt мы разделим 3-й столбец с значение, хранящееся в массиве
+0

Благодарим за эффективный ответ! Знаете ли вы, если я хочу также умножить некоторое постоянное число в столбце 3, как это сделать? –

+1

, что было бы просто: 'awk {$ 3 * = 5} 1 'file' – anubhava

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