Sed/Awk вставляет пробелы перед строками, НЕ начинающимися с шаблона

Я пытаюсь обработать файл журнала со следующими типами строк:

  • строка1 шаблон1 слово1 слово2 шаблон2
  • ряд2 узор1 узор2

Чего я пытаюсь добиться, так это вставить pattern4 между pat1 и pat2 для каждой строки, которая не включает «word1 word2», т.е. условную замену

Цель состоит в том, чтобы добиться такого вида

  • ряд1 узор1 узор3 узор2
  • ряд2 узор1 узор4 узор2

Чтобы мы могли дальше обрабатывать с помощью awk :)


person user3526179    schedule 12.04.2014    source источник
comment
Пожалуйста, отредактируйте свой вопрос, чтобы показать, как результат должен выглядеть после этого, так как в комментариях трудно увидеть форматирование.   -  person Mark Setchell    schedule 12.04.2014
comment
Вы говорите, что вам нравится вставлять что-то, но хотите ли вы также удалить word1 word2?   -  person Jotne    schedule 12.04.2014


Ответы (1)


Возможно, это работает:

awk '!/word1 word2/  {$2=$2 " pattern4"}1' file
row1 pattern1 word1 word2 pattern2
row2 pattern1 pattern4 pattern2
person Jotne    schedule 12.04.2014
comment
Я вижу, что задал не тот вопрос. Отредактировано выше. - person user3526179; 12.04.2014
comment
Сработало как шарм, большое спасибо. Мне нужно было только выяснить, что $2=$2 следует изменить, чтобы он соответствовал моему файлу журнала. Большое спасибо ! :) - person user3526179; 12.04.2014