Как добавить строку в файл .txt во все строки, исключая несколько символов, с помощью sed или awk

Проблема решена. То, что работало на старом сервере, позволяло теме письма идти после адреса электронной почты. Новый сервер этого не делает и рассматривает тему как учетные записи электронной почты на хосте.

8
09.07.2017, 02:16
2 ответа

Савк:

awk '$2~/^[A-Z][A-Z]/{ $2="PT_"$2 }1' xid.txt

Выход:

xid: PT_SC48028 id: artf398444
xid: indv1000 id: indv24519
xid: PT_SC32173 id: artf398402
xid: PT_SC21033 id: artf398372
xid: 1001 id: tracker4868
xid: wiki1000 id: wiki10709
xid: proj1234 id: proj12556

  • $2~/^[A-Z][A-Z]/-если второе поле начинается с двух заглавных букв

Илиsedподход:

sed -i 's/^\(xid:[[:space:]]*\)\([A-Z]\{2\}[^[:space:]]*\)/\1PT_\2/' xid.txt
13
27.01.2020, 20:09

опция sed

sed -i -e 's/[A-Z][A-Z]/PT_&/' file

где

  • -iредактировать на месте
  • -eкоманда для выполнения
6
27.01.2020, 20:09

Теги

Похожие вопросы