sed - заменить любой из двух символов одной командой - PullRequest
12 голосов
/ 26 июля 2010

Мне бы хотелось, чтобы одна команда sed выполнила следующее:

$ sed s'/:/ /g' <and> sed s'/=/ /g'

То есть я бы хотел написать

sed s'/<something>/ /g' 

и заменить = и : пробелом.

Ответы [ 3 ]

28 голосов
/ 26 июля 2010
sed s'/[:=]/ /g'

Скобки означают «любой из».

8 голосов
/ 26 июля 2010

Один вариант также использовать sed -e, как это. Хотя в этом случае он вам и не нужен, тем не менее, это хороший вариант.

sed -e 's/:/ /' -e 's/..../ /' file
6 голосов
/ 01 ноября 2012

Ответ Санджея решает это. Другая опция, которая работает только с одной командой sed, - это разделение каждой замены s точкой с запятой

sed 's/:/ /g ; s/=/ /g' file

или отдельными строками в скрипте

sed 's/:/ /g 
     s/=/ /g' file

Это может пригодиться в других ситуациях.

...