LINUX.ORG.RU

Изменить строки по порядку

 , ,


0

2

Имеется текстовый файл вида

aaaa
bbbb
cccc
dddd
В bash'евском цикле генерятся четные числа из определенного диапазона. Например
for i in {3..6}; do let "m = $i*2"; done
Как с помощью sed/awk в конце каждой строки файла добавить значение переменной m по порядку?
То есть результат должен выглядеть так:
aaaa 6
bbbb 8
cccc 10
dddd 12

★★★

если генерировать не на баше, а внутри awk, то можно как-то так.
awk 'BEGIN {i=3}; {print $0" «i*2; i=i+1}' file.txt

bl ★★★
()
Ответ на: комментарий от emulek

хотя это долго. Быстрее в самом баше

#!/bin/bash
I=0
while read S; do
 echo "$S $I" >>"$OUTPUT"
 (( I += 2 ))
done<<"$INPUT"

UPD fixed

emulek
()
Последнее исправление: emulek (всего исправлений: 1)

inb4: не подходит по ТЗ

perl -i -ple '$_ .= " " . (2*$. + 4)' file

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.