Вопрос по awk/gawk
- Captain Flint
- Увлекающийся
- Сообщения: 82
- Зарегистрирован: 02 дек 2002, 18:54
Вопрос по awk/gawk
Может кто из уважаемых господ знает, как средствами awk/gawk решить такую задачу:
В скрипте zzz.awk нужно задать проверку на наличие строки из файла A в файле B.
Т.е. надо что-то вроде
grep -f string.list in_file.name
на на awk
В скрипте zzz.awk нужно задать проверку на наличие строки из файла A в файле B.
Т.е. надо что-то вроде
grep -f string.list in_file.name
на на awk
- Captain Flint
- Увлекающийся
- Сообщения: 82
- Зарегистрирован: 02 дек 2002, 18:54
- Captain Flint
- Увлекающийся
- Сообщения: 82
- Зарегистрирован: 02 дек 2002, 18:54
- leikind
- Неотъемлемая часть форума
- Сообщения: 811
- Зарегистрирован: 20 июн 2002, 03:02
- Откуда: Брюссель
- Контактная информация:
http://www.gnu.org/manual/gawk-3.1.1/ht ... /gawk.htmlCaptain Flint писал(а):А какой awk стиль? И где об этом можно почитать/узнать?
awk почти такой же древний, как C, и почти теми же людьми создан. В некотором смысле это предок Perl.
- Captain Flint
- Увлекающийся
- Сообщения: 82
- Зарегистрирован: 02 дек 2002, 18:54
[quote="Anonymous"]Можно с помощью getline файлы читать. Но это не awk style.[/quote]
Ладно, со стилем спорить не буду, хоть и в вышепредложенном документе не нашел упоминания о том, что getline -- плохой стиль. Попозже внимательнее пересмотрю.
Но, допустим, мне нужно каждую строку одного файла считать в массив до того, как начну обрабатывать второй файл. Я это делаю так:
BEGIN {
for (i = 1; i < 5; i++) getline ar_lst[i] < "wusrls.txt"
}
#other
...
_Не_ используя getline как мне это сделать? Я только начал разбираться с awk, поэтому рад любому конструктивному замечанию.
Ладно, со стилем спорить не буду, хоть и в вышепредложенном документе не нашел упоминания о том, что getline -- плохой стиль. Попозже внимательнее пересмотрю.
Но, допустим, мне нужно каждую строку одного файла считать в массив до того, как начну обрабатывать второй файл. Я это делаю так:
BEGIN {
for (i = 1; i < 5; i++) getline ar_lst[i] < "wusrls.txt"
}
#other
...
_Не_ используя getline как мне это сделать? Я только начал разбираться с awk, поэтому рад любому конструктивному замечанию.
С awk принятно работать как с фильтром. То есть пропускать файлы через скрипт. И словарь (1-й файл) тоже можно пропустить через скрипт, только зачитав все строки. Но в твоем случае getline может быть даже уместнее. Я, пожалуй, погорячился насчет стиля. Если захочешь сделать в виде фильтра - hint: в переменной FILENAME хранится имя текущего обрабатываемого файла или "-" для stdin.
- Captain Flint
- Увлекающийся
- Сообщения: 82
- Зарегистрирован: 02 дек 2002, 18:54
- Victor Gr.
- Неотъемлемая часть форума
- Сообщения: 891
- Зарегистрирован: 13 авг 2004, 15:39
- Откуда: Минск
- Контактная информация: