LINUX.ORG.RU

изменение поля gawk


0

0

не могу изменить поле в файле. Делаю так:
поля     AAA    2  - уже есть, надо просто поменять 2-е поле....

read B
gawk -v var="$B" '{ if($1 ~ "AAA") {$2 = var}) }' aaa.txt

нифига не меняется...

если сделать :
read B
gawk -v var="$B" '{ if($1 ~ "AAA") {$2 = var}) }' aaa.txt > bbb.txt
то в bbb.txt пишится то что надо, но надо просто поменять в aaa.txt

anonymous
Ответ на: комментарий от sdio

а можно примерчик... sed вот есть файл aaa.txt в нем: AAA 5 BBB 6 CCC 7 .......... и т.д.

надо заменить, например, AAA 10 (5 на 10) именно в этом же файле...

anonymous
()
Ответ на: комментарий от anonymous

сорри... отформатировал...

а можно примерчик... sed
вот есть файл aaa.txt  в нем:
AAA 5
BBB 6
CCC 7
.......... и т.д.

надо заменить, например, AAA 10 (5 на 10) именно в этом же файле...

anonymous
()
Ответ на: комментарий от ananas

А что мешает просто сделать sed -ri s/'^(AAA).*'/'\1 10'/ aaa.txt покороче, однако, будет.

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

а как вместо конкретного числа заменить на переменную среды?

read XXX
и подставить в AAA вместо 5 значение XXX ???

anonymous
()
Ответ на: комментарий от anonymous

> Все классно работает, тока поясните плз, что значит \1 ?

в man sed заглянуть - не судьба?

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