2013-08-22 2 views
0

Я раздел 2.3 урока чтения на - http://www.vectorsite.net/tsawk_2.html#m2Поймите шаблон поиска в AWK?

Существует больше возможностей строк поиска AWK в. Поиск может быть ограниченным одним полем в строке ввода.

Например:

$1 ~ /^France$/ 

Там нет кода, который показывает, как работает эта модель. Может ли кто-нибудь показать мне, как эта строка может использоваться и как она работает?

+0

Я не вижу серого выделения вокруг моего кода. Зачем ? – Steam

+0

Что заставляет вас думать, что мой ответ должен быть опущен? Это правильный совет для вас. Не стесняйтесь путаться на любых веб-сайтах, которые вам подходят, если хотите. –

+0

@anubhava - хорошо, я сделал это. Могу ли я быть перенаправлен на 0? Было бы лучше, если бы он добавил ответ или какую-то подсказку, прежде чем предлагать книгу. Однако предложение хорошее. – Steam

ответ

5

Несомненно!

$ 1 ~/^ Франция $/

С помощью следующей команды AWK:

awk '$1 ~ /^France$/ { print }' 

И следующий вход

France 1 
France1 2 
france 3 
- France 4 
France - 5 

Выход будет

France 1 
France - 5 

$1 - значение первого поля; по умолчанию для awk нужно разделить, используя поля с разделителями пробелов. /^France$/ - это регулярное выражение, совпадающее с точной строкой Франция (с использованием якорей начала и конца строки ^ и $). И, наконец, ~, является двоичным оператором строки, который соответствует левой части регулярным выражением в правой части.

Обратите внимание, что регулярные выражения могут быть выражены как обычные кавычки или заданы в переменных, но синтаксис «/.../» лучше, когда выражение является встроенным, поскольку оно более очевидно, и нет необходимости в дополнительном экранировании эти строки вызывают, когда в выражении есть либо цитата, либо обратная косая черта.

Конечно, это конкретное выражение будет проще, чем $1 == "France".

Дайте мне знать, если поможет более сложный пример.

+2

Вам даже не нужно '{print}'. – Kevin

+0

Большое спасибо. Я не могу сказать, насколько я рад. – Steam

+1

True Kevin - я добавил это для ясности и предложил более легкую модель, начиная с новичка. Рад помочь бласто! – ash

1

Изучить awk, получить книгу Эффективное программирование Awk, третье издание Арнольдом Роббинсом. Не полагайтесь на случайные веб-сайты для получения точной или полезной информации.

+0

Hi Ed. Имел ли этот код смысл? Этот случайный сайт был рекомендован и поддержан здесь - http://unix.stackexchange.com/questions/2434/is-there-a-basic-tutorial-for-grep-awk-and-sed Но, похоже, никто не отзывался эти ссылки. Тем не менее, первая часть учебника была хорошей. – Steam

+1

Нет, это не имеет смысла.Функциональность, которую вы получите от этого кода, более разумно написана как просто «$ 1 ==» «Франция», и она говорит о поиске по строкам, но затем использует конструкцию RE-search для ее демонстрации. Неудивительно, что вы в замешательстве! –

+0

См. Приведенный выше ответ. Оно работает. Не удаляйте свой ответ. Пусть это будет здесь. – Steam

Смежные вопросы