Форум Gatchina OnLine

Форум Gatchina OnLine (https://forumgol.ru/index.php)
-   Программирование и разработка (https://forumgol.ru/forumdisplay.php?f=4)
-   -   AWK (shell, Linux) (https://forumgol.ru/showthread.php?t=5366)

ΛLIEN 17.05.2007 20:57

Я так понимаю, ты пробелкавычка заменил на просто кавычка и вместо текст" "текст должно получиться текст""текст и оно уже нормально разделяется через awk?

Прохожий 17.05.2007 21:05

bash$ cat testfile |sed 's/" "/"/g'|awk 'BEGIN {FS="\""}; {split ($4,a," ")};{print $1,$2,$3,a[1],a[2],$5};'

я заменил кавычкапробелкавычка на просто кавычка и вместо текст" "текст получится текст"текст. разделяется нормально, потому что в FS сказано делить по кавычкам. но нужно еще 1955 500 разделить по пробелу, я это сразу не учел, но вышеприведенный код работает как надо. см:

Цитата:

bash$ cat testfile |sed 's/" "/"/g'|awk 'BEGIN {FS="\""}; {split ($4,a," ")};{print $1};'
1001
1001
1001
1001
1001
1001
1001
1001
Цитата:

bash$ cat testfile |sed 's/" "/"/g'|awk 'BEGIN {FS="\""}; {split ($4,a," ")};{print $2};'
Через тернии к звездам
Через тернии к звездам
Через тернии к звездам
Через тернии к звездам
Через тернии к звездам
Через тернии к звездам
Через тернии к звездам
Через тернии к звездам
Цитата:

bash$ cat testfile |sed 's/" "/"/g'|awk 'BEGIN {FS="\""}; {split ($4,a," ")};{print a[1]};'
1955
1955
1955
1955
1955
1955
1955
1955
ну и так далее. единственное замечание - поля 4 и 5 хранятся не в переменных $4 и $5, а в элементах массива a[1] и a[2], а поле 6 - в переменной $5 :) содержимое остальных переменных соответствует их именам.

ΛLIEN 17.05.2007 22:16

Цитата:

Сообщение от Прохожий (Сообщение 218722)
...содержимое остальных переменных соответствует их именам.

10х еще раз. Надо будет в ближайшее время приобщиться к man sed. =)

Прохожий 17.05.2007 22:26

не за что :)
sed прост и в 99% случаев достаточно только одной его команды - s.
awk намного более могуч :) и в принципе они вполне взаимозаменяемы, хотя простые вещи вроде замены с использованием регулярных выражений на sed записываются короче, из-за этого я его и пользую :)

если ты с файлом все же напутал - отпишись, я подправлю скриптик. если сам не сможешь, конечно :)

ΛLIEN 19.05.2007 01:24

Цитата:

Сообщение от Прохожий (Сообщение 218753)
отпишись, я подправлю скриптик.

Да нет, не надо. Работает.
/me читает man sed
Так много интересного. =)


Текущее время: 23:12. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot