grepping конкретная матрица и печать в одной строке

У меня есть один файл, содержащий ключевые слова word1 и word2 а под word2 есть матрица как file.dat

  position1: [ 0.0000000, 0.0000000, 0.0000000 ] word1: 0.0000000 band: - # 1 word2 : 0.32015595 0.18484212 0.00000000 0.00000000 0.36968424 0.00000000 0.00000000 0.00000000 0.08286072 position2: [ 0.5000000, 0.0000000, 0.0000000 ] word2: 0.0000000 band: - # 1 word2 : 0.45015595 0.53484212 0.00000000 0.00000000 0.36968424 0.00000000 0.00000000 0.00000000 0.02476072 . . 

Теперь я хочу сделать файл формата

 position1 word1 word2 position2 word1 word2 . . 

но здесь матрица word2 в одной строке как

 0.0000000 0.0000000 0.0000000 0.0000000 0.32015595 0.18484212 0.00000000 0.00000000 0.36968424 0.00000000 0.00000000 0.00000000 0.08286072 

я использовал оценку

 awk '/ position | word1 | word2/ {w=w "$2" } END {print w} 

но это не дает ожидаемого результата, кто-нибудь может мне помочь? Спасибо

  • Как обеспечить, чтобы скрипт успешно выполнялся как транзакция
  • Как мне grep найти файл, соответствующий строке, заключенной в подстановочные знаки
  • как объявить переменные командной строки в сценариях оболочки?
  • Скрипт Simple Shell для регистрации дискового пространства
  • Почему этот скрипт не принимает два аргумента?
  • case multi-pattern со строками
  • Невозможно получить фактический подсчет строк из-за возврата каретки в значения:
  • Как перенаправить стандартный ввод инструкции `while` в файл?
  • One Solution collect form web for “grepping конкретная матрица и печать в одной строке”

     $ awk -F': ' '/position[0-9]+:|word[0-9]+:/ {w=w" "$2 }; /^[0-9. ]+$/ { w=w" "$0 }; /^[[:blank:]]*$/ || eof {if (w) {gsub(/,/,"",w);print w;w=""}}' muthu.txt [ 0.0000000 0.0000000 0.0000000 ] 0.0000000 0.32015595 0.18484212 0.00000000 0.00000000 0.36968424 0.00000000 0.00000000 0.00000000 0.08286072 [ 0.5000000 0.0000000 0.0000000 ] 0.0000000 0.45015595 0.53484212 0.00000000 0.00000000 0.36968424 0.00000000 0.00000000 0.00000000 0.02476072 

    Альтернативно, с (IMO) немного лучше форматирование:

     $ awk -F': ' '/position[0-9]+:/ {p=$2 }; /word[0-9]+:/ {w=$2}; /^[0-9. ]+$/ { if (!w2) { w2="[" }; w2=w2" ["$0" ]" }; /^[[:blank:]]*$/ || eof { l=p" "w" "w2; gsub(/ +/," ",l); gsub(/,/,"",l); if (l ~ /^[[:blank:]]*$/) {next}; print l" ]"; p=w=w2="" }' muthu.txt [ 0.0000000 0.0000000 0.0000000 ] 0.0000000 [ [ 0.32015595 0.18484212 0.00000000 ] [ 0.00000000 0.36968424 0.00000000 ] [ 0.00000000 0.00000000 0.08286072 ] ] [ 0.5000000 0.0000000 0.0000000 ] 0.0000000 [ [ 0.45015595 0.53484212 0.00000000 ] [ 0.00000000 0.36968424 0.00000000 ] [ 0.00000000 0.00000000 0.02476072 ] ] 

    Оба они предполагают, что входные данные находятся в параграфах, разделенных 1 или более пустых строк.

    Interesting Posts

    Bluetooth не работает в Linux Mint 18

    Каковы различия между большинством, все больше и меньше?

    Linux Source Routing, Сильная модель конечной системы / Сильная модель хоста?

    ncurses based menus

    Время записи каждого процесса или контекста контекста потока

    Отмена определенного ограничения ip / port iptables

    Найдите файлы с определенным форматом файлов, коту, каждый с файлом заголовка, и сохраните результат в исходный файл для каждого такого файла

    Нажатие изменений в репозитории драйверов

    Замена очереди теперь, когда пакет не принимает входные файлы?

    Настройка FTP-прокси на Squid

    Как анализировать файл, подобный этому, и определять переменные?

    Запуск внешних команд в vim

    Создание виртуальной машины Xen на сервере ubuntu

    Как заставить X использовать определенный дисплей, независимо от того, подключен ли он?

    Зашифрованная загрузка падает на оболочку, как настроить LVM crypttab последовательно? «ALERT! {логический путь тома} не существует '

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