Intereting Posts
Как переходить между процессами с именованными каналами? Можно ли запустить ssh-copy-id на другом порту, кроме 22? Каковы инструменты GNU / Linux для проверки документов PDF перед публикацией? Как запустить 32-разрядные программы на 64-битной Fedora 17? скопировал папку – получив различное используемое пространство в пункте назначения (используя FreeBSD и UFS) Выделение обычного файла из символической ссылки Есть ли легкая файловая система, которая реализует символические ссылки и разрешения файлов поверх другой файловой системы, которая не поддерживает их? Конвертировать данные из файла LDIF в CSV Настройка портативной среды разработки Всесторонний сценарий /etc/auto.disks для autofs, который учитывает все смонтированные диски, включая NTFS и FAT32? Что означает «патч неожиданно заканчивается в середине линии»? Как изменить пароль root на Debian? Почему поведение цикла while и цикла отличается? Как распечатать только имя скрипта? Создать раздел на сервере CentOS?

Awk с несколькими разделителями

Я пытаюсь выполнить awk примерно так:

 <tag x="whatever" y="http://mysite.com/somewords/word1/word2/word3/word4"> 

Я хотел бы извлечь word2 который приходит навсегда после word1 , зная, что некоторые слова не всегда существуют.

Я смог сделать это с помощью awk , но я использовал его 3 раза, каждый раз с одним разделителем.

Есть ли способ объединить несколько команд awk с несколькими разделителями или просто одну команду awk чтобы выбрать word2 ?

Разделитель awk может быть регулярным выражением, поэтому, если вы хотите разделить строку на, скажем, пробелы и слэши, вы можете использовать -F '[ /]'

Но, учитывая ваше отрывочное описание, вам может понадобиться только следующее:

 awk -F/ '{for (i=1; i<NF; i++) if ($i == "word1") {print $(i+1); break}}'