Как получить значения индекса для нескольких совпадений в одной строке в awk?

Я знаю следующее выражение:

echo "bob alice robert alice" | awk '{print index($0,"alice")}' 5 

Выведет индекс первого совпадения alice, есть ли способ получить индекс всех совпадений ?, например:

 echo "bob alice robert alice" | awk 'unknown magic' 5:18 

  • Как использовать awk для разбиения файла с помощью текстового шаблона
  • Разнообразные форматированные разрешения
  • Заменить поля в файле inline
  • Подсчитайте количество вхождений определенного числа перед каждой строкой в ​​linux
  • Как я могу использовать awk для извлечения URL из HTML-файла?
  • Как автоматически определять и записывать в usb с переменными пространствами в его имени
  • Bash для эхо-первого позиционирования каждой строки в файл с именем второго
  • Добавление запятых между элементами двоичной матрицы в текстовом файле
  • 3 Solutions collect form web for “Как получить значения индекса для нескольких совпадений в одной строке в awk?”

    С инструментами POSIX:

     echo "bob alice robert alice"| p=alice awk ' { while(1) { $0 = substr($0, RSTART+RLENGTH) match($0, ENVIRON["p"]) if (RSTART == 0) break i = i ? i+RSTART+RLENGTH-1 : RSTART print i } }' | paste -sd: - 5:18 

    Это должно сделать вашу работу:

     echo "bob alice robert alice" |\ awk '{ s=$0 o=0 m="alice" l=length(m) i=index(s,m) while (i>0) { o+=i print o s=substr(s,i+l) o+=l-1 i=index(s,m) } }' 

    Для форматирования с помощью:: (двоеточие) вы можете

     paste -s |tr '\t' ':' 
     echo "bob alice robert alice"| awk ' {for( i=1;i<=NF;i++) { if ( $i == "alice") { printf index($0,"alice") ":" gsub("alice","xxxxx",$i) } } print " " }' 
    Interesting Posts

    Каков размер физического сектора для моего жесткого диска?

    Проводник файлов не запускается, когда я запускаю его и исчезает из Избранного

    Ошибка ssh root @ localhost; помогите мне взломать эту коробку

    Wicd запрашивает пароль при входе в систему

    Как я могу продолжить этот момент при установке Solaris 11 под VMware Fusion 5.0.4 на Mavericks?

    Как настроить несколько ип для разных сервисов

    Команда работает, а затем не (cd / ls)

    Установка zpool (сервер Solaris и клиент Freebsd)

    Есть ли способ ввести пароль с экранной клавиатурой, чтобы разблокировать криптографическое устройство LUKS во время загрузки?

    Восстановить права sudo

    Как играть в HTTP-поток музыки через SSH?

    Не удалось удалить файл, что бы я ни делал

    Linux fgrep как извлечь «only_words_in_my_language» из большого файла «MIXED_WORDS»?

    Как я могу расширить его?

    Могу ли я запускать несколько устройств TKL на одном сервере (например, HP Microserver)?

    Linux и Unix - лучшая ОС в мире.