Статьи Галерея Форум Чат Файлы HowTo Ссылки Поиск
Текущее время: 22 авг 2019, 20:31




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос по awk/gawk
СообщениеДобавлено: 09 мар 2003, 22:01 
Увлекающийся
Аватара пользователя

У нас с: 02.12.2002
Сообщения: 82
Может кто из уважаемых господ знает, как средствами awk/gawk решить такую задачу:

В скрипте zzz.awk нужно задать проверку на наличие строки из файла A в файле B.

Т.е. надо что-то вроде
grep -f string.list in_file.name
на на awk


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 12 мар 2003, 07:51 
The function system(expr) uses /bin/sh to execute expr and
returns the exit status of the command expr. Changes made
to the ENVIRON array are not passed to commands executed
with system or pipes.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 12 мар 2003, 09:10 
Увлекающийся
Аватара пользователя

У нас с: 02.12.2002
Сообщения: 82
В том и дело, что не хотел бы вызывать system(), т.к. цель в том, чтобы сделать более-менее универсальный скрипт, для разных платформ.
Но проблему практически решил, спасибо за ответ.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 12 мар 2003, 20:15 
Можно с помощью getline файлы читать. Но это не awk style.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2003, 09:00 
Увлекающийся
Аватара пользователя

У нас с: 02.12.2002
Сообщения: 82
А какой awk стиль? И где об этом можно почитать/узнать?


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2003, 13:06 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
Captain Flint писал(а):
А какой awk стиль? И где об этом можно почитать/узнать?


http://www.gnu.org/manual/gawk-3.1.1/ht ... /gawk.html


awk почти такой же древний, как C, и почти теми же людьми создан. В некотором смысле это предок Perl.

_________________
Изображение


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2003, 15:30 
Увлекающийся
Аватара пользователя

У нас с: 02.12.2002
Сообщения: 82
[quote="Anonymous"]Можно с помощью getline файлы читать. Но это не awk style.[/quote]
Ладно, со стилем спорить не буду, хоть и в вышепредложенном документе не нашел упоминания о том, что getline -- плохой стиль. Попозже внимательнее пересмотрю.
Но, допустим, мне нужно каждую строку одного файла считать в массив до того, как начну обрабатывать второй файл. Я это делаю так:

BEGIN {
for (i = 1; i < 5; i++) getline ar_lst[i] < "wusrls.txt"
}
#other
...

_Не_ используя getline как мне это сделать? Я только начал разбираться с awk, поэтому рад любому конструктивному замечанию.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 19 мар 2003, 11:46 
С awk принятно работать как с фильтром. То есть пропускать файлы через скрипт. И словарь (1-й файл) тоже можно пропустить через скрипт, только зачитав все строки. Но в твоем случае getline может быть даже уместнее. Я, пожалуй, погорячился насчет стиля. Если захочешь сделать в виде фильтра - hint: в переменной FILENAME хранится имя текущего обрабатываемого файла или "-" для stdin.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 19 мар 2003, 12:12 
Увлекающийся
Аватара пользователя

У нас с: 02.12.2002
Сообщения: 82
Задачу решил, всем спасибо за ответы.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 14 мар 2006, 00:22 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 13.08.2004
Сообщения: 891
Откуда: Минск
Вопрос по awk.

А как пройтись по ассоциативному массиву, если я не знаю всех его ключей?

Функции, похожей на foreach не нашёл :(. Да и вообще, об Arrays в man awk - кот наплакал.

Буду рад подсказке.

_________________
https://grinchik.com/


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
[ All resources are available under GNU GPL ] [ Support ] [ Hosted by DataHata | MyCloud.by ] [ Powered by phpBB® Forum Software © phpBB Group ]

LVEE Winter LVEE Rambler's Top100