Команда sed заменить / на; только для состояния

Подскажите пожалуйста как заменить / с ; в этом:

ASAL
/*
 * VIEW: VINAME1 
 */
Create view viewname
/
test

Мне нужно конвертировать только одинокий /поэтому вывод должен быть таким:

ASAL
/*
 * VIEW: VINAME1 
 */
Create view viewname
;
test

2 ответа

Это / между началом и концом линии. В качестве регулярного выражения это ^/$:

 sed 's|^/$|;|' your_file

Это идентифицирует косую черту как единственный символ в строке:

sed 's.^/$.;.g'

Символ каретки обозначает начало строки, доллар обозначает конец строки.

Редактировать: чтобы разрешить пробел до и после косой черты, и удалить его:

sed -r 's.^(\s)?/(\s)?$.;.'

Изменить 2: чтобы разрешить пробел и не удалять его:

sed -r '/^(\s)?\/(\s)?$/ s./.;.'
Другие вопросы по тегам