заменить только строку, соединенную с цифрами - PullRequest
0 голосов
/ 25 сентября 2019

Я пытался заменить объединенную букву E цифрами (то есть E1234) на #E1234

input

0007 EVENT E0010 RELEASE RESP. 
EVENT STARt WITH
E1010 
  E2014
DE014

, поэтому с помощью этой команды следует удалить толькострока с цифрами.

sed '/E[0-9]/ s/E/\#E/g' input
0007 #EV#ENT #E0010 R#EL#EAS#E R#ESP. 
EVENT STARt WITH
#E1010 
  #E2014
D#E014

Она должна вывести что-то вроде этого.Дайте мне знать, что вы думаете.

0007 EVENT #E0010 RELEASE RESP. 
EVENT STARt WITH
#E1010 
  #E2014
D#E014

Ответы [ 2 ]

2 голосов
/ 25 сентября 2019

С awk не могли бы вы попробовать следующее.Это будет искать либо маленькую букву e, либо заглавную букву E с 1 или более цифрами. (Если вам не нужно указывать e в регулярном выражении, оставьте только E в регулярном выражении в следующем коде)

awk '{gsub(/[eE][0-9]+/,"#&")} 1'  Input_file

Чтобы внести изменения в сам файл Input_file, добавьте > temp_file && mv temp_file Input_file

2 голосов
/ 25 сентября 2019

Это может сработать для вас (GNU sed):

sed 's/E[0-9]/#&/g' file

Перед # добавьте букву E, за которой следует цифра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...