Использование AWK добавляет новую строку, если существует совпадение

У меня есть файл со следующим форматом:

aaa@ bbb bbb@ ccc& ddddd@ aaaf ccc@ ddd& eee: abcd& dassda 

Выход должен быть:

 aaaa@ bbb bbb@ ccc& ddddd@ aaaf ccc@ ddd& eee@ abcd& dassda 

Как я смогу добиться этого с помощью AWK? Я пробовал sed и awk, но я могу напечатать только новую строку после делиметра, я не знаю, как распечатать все это на следующей строке.

  • как печатать поле между двойной цитатой
  • Добавление макроса TeX в начало файла с помощью sed (почему мой метод не работает?)
  • Как я могу выполнить двоичный поиск текстового файла для определенной строки символов?
  • Удалить первую строку файла
  • Редактирование вложенного текста и определенных строк в файле с использованием сценария bash
  • Окрашивание хвостового выхода с помощью perl
  • Замените данные на определенный символ, затем измените значение после x строк
  • возможно ли добавить запятую в этот SQL?
  • One Solution collect form web for “Использование AWK добавляет новую строку, если существует совпадение”

    sed:

     sed 's/& /\&\n/' file 

    если вам нужно заменить all & на каждую строку, просто добавьте g после последнего / .

    awk:

     awk '{ sub(/& /,"&\n"); print }' 

    в случае необходимости заменить все & на каждой строке используйте gsub вместо sub .

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