LINUX.ORG.RU
ФорумAdmin

AWK - надо выкрутиться


0

0

вот такой код:

grep /dev/hd /etc/fstab | awk -F ' ' '
{
print $1 >/tmp/2;
getline p < "/tmp/2";
close(/tmp/2);
print p;
}'

выводит:

/dev/hda4
/dev/hda4
/dev/hda4
/dev/hda4

а должен:

/dev/hda1
/dev/hda2
/dev/hda3
/dev/hda4

видимо там трабл с close, вот только чет не получаеться у меня...
хотел было сделать так:

rep /dev/hd /etc/fstab | awk -F ' ' '
{
"echo " $1 | getline p;
print p;
}'

но не тут то было:

sh: /dev/hda1: Permission denied
sh: /dev/hda2: Permission denied
sh: /dev/hda3: Permission denied
sh: /dev/hda4: Permission denied

в общем задача следующая: мне надло пропарсить $1 через sed, и потом присвоить его переменной "p". вот блин, пытаюсь это сделать...

anonymous

Да-а-а уж, ну как тебя понять, если ты прыгаешь с темы на тему?

Скажи что дано (видимо fstab) и что надо на выходе (надло пропарсить $1 через sed, и потом присвоить его переменной "p") -- чья переменная awk, shell, sed ???

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

переменная awk.
я сделал то что хотел таким образом:

grep /dev/hd /etc/fstab | awk -F ' ' '
{
cmd = "echo " $1 " | sed -r -e 's/[a-z\/]*//'";
cmd | getline p;
print p;
}'


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

При наличие awk использовать grep,sed,... кощунство :-)

awk '/\/dev\/hd/ { split($1,x,"a");
                   p=x[2];
                   print p}
    ' /etc/fstab

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