URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9803
[ Назад ]

Исходное сообщение
"awk  sed"

Отправлено palit , 27-Дек-13 19:35 
добрый день !
не подскажите как заменить поля с 1 по 4 в файле
пробую awk '{if(NR==2) sub ($1, "'"$res"'");print}' file.txt
заменяется только 1-е поле, $res - переменная ( 12 33 5 7) содержимое файла file.txt
192.168.2.92 12 33 44
22 3 2 11 /root /home

Содержание

Сообщения в этом обсуждении
"awk  sed"
Отправлено Andrey Mitrofanov , 28-Дек-13 10:38 
> добрый день !
> не подскажите как заменить поля с 1 по 4 в файле
> пробую awk '{if(NR==2) sub ($1, "'"$res"'");print}' file.txt
> заменяется только 1-е поле, $res - переменная ( 12 33 5 7)
> содержимое файла file.txt
> 192.168.2.92 12 33 44
> 22 3 2 11 /root /home

А куда делся второй файл из "прошлой" постановки задачи [в диалоге с администрацией]? Типа, "я вся такая загадочная, противоречивая такая" -- сама не знaю, чего хочу. Ну, на -- это всё одно не то, что тебе надо, а с "уточнённым(и)" ТЗ - в пешее эротическое.

$ res=(12 33 5 7)
$ dato
192.168.2.92 12 33 44
22 3 2 11 /root /home
$ dato |awk -v a=${res[0]} -v k=${res[1]} -v e=${res[2]} -v b=${res[3]} '{$1=a;$2=k;$3=e;$4=b;print}'
12 33 5 7
12 33 5 7 /root /home
$ _


"awk  sed"
Отправлено palit , 29-Дек-13 01:09 
Спасибо большое очень помогло

f1=addcron.txt
f2=file.txt

res=`awk '/#1/ {print $1, $2, $3, $4}' $f1`
m=($res)

awk -v a=${m[0]} -v k=${m[1]} -v e=${m[2]} -v b=${m[3]} '{$1=a;$2=k;$3=e;$4=b;print}' $f2