LINUX.ORG.RU
ФорумAdmin

awk


0

0

С помощью awk можно вывести нужные переменные, а как их потом можно использовать? Пример:

ls -l --time-style=long-iso /var/spool/|awk '{print $6 $7 $8}'

выводит нужные поля. Как можно после использовать эти переменные?

anonymous

Какие переменные? Нету тут никаких переменных. Ты хочешь записать эти поля в переменные, или что ты хочешь?

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

В переменные Баша, или в переменные awk внутри команды? Если первое, то как-то так

VAR=`ls -l --time-style=long-iso /var/spool/|awk '{print $6}'`

Если второе, то вот так

ls -l --time-style=long-iso /var/spool/|awk '{a=$6; b=$7; c=8; print a}'

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

Вот например вывод:

ls -l --time-style=long-iso|awk '{ print $6," \| "$7," \| "$8 }'

2008-08-07 | 11:19 | 101-578f4797-07-08-2008-1218093577.43643.mp3

при этом мне нужно разбить $8 на чаcти, что бы получилось:

2008-08-07 | 11:19 | 101 | 578f4797 | 07-08-2008 | 1218093577.43643.mp3

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

Спасибо за подсказку, вроде получилось. Но не до конца. Не получается вставить символы "'".

awk '{split ($8, a, "-"); print $6" "$7"," a[1]","a[2]","$10}' 777

2008-08-08 02:15,49328,ON,/var/ftp/RECORDS/08-08-2008/99328-s-08-08-2008-1218147018.62403. mp3

выводит так, а нужно так:

'2008-08-08 02:15','49328','ON','/var/ftp/RECORDS/08-08-2008/99328-s-08-08-2008-1218147018. 62403.mp3'

экранирование не помогает(в моем исполнении :) )

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

Спасибо за подсказку, вроде получилось. Но не до конца. Не получается вставить символы "'". 

awk '{split ($8, a, "-"); print $6" "$7"," a[1]","a[2]","$10}' 777 

2008-08-08 02:15,49328,ON,/var/ftp/RECORDS/08-08-2008/99328-s-08-08-2008-1218147018.62403. mp3 

выводит так, а нужно так: 

'2008-08-08 02:15','49328','ON','/var/ftp/RECORDS/08-08-2008/99328-s-08-08-2008-1218147018. 62403.mp3' 

экранирование не помогает(в моем исполнении :) )

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

Попробуйте использовать printf():

awk '{split ($8, a, "-"); printf("'%s %s', '%d', '%s', '%s'\n", $6, $7, a[1], a[2], $10}' 777

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