#regex #sed
#регулярное выражение #sed
Вопрос:
Я пытаюсь заменить [‘xxx’] на [ xxx], используя sed:
sed -e 's/a[ '(.*)' ]/a[ 1 ]/' ./Test
sed: -e expression #1, char xx: invalid reference 1 on `s' command's RHS
Что я делаю не так?
Спасибо!
Ответ №1:
Вам нужно избежать [
и ]
вот так:
echo "a[ 'xxx' ]" | sed "s/a[ '(.*)' ]/a[ 1 ]/"
Ответ №2:
Как насчет простого удаления символов, заключенных в одинарные кавычки? Чтобы избежать путаницы в командной строке, используйте двойные кавычки вокруг выражения:
sed -e "s/'//g"
a[‘xxx’]
a[xxx]
Грег Джонсон
Ответ №3:
Как насчет использования tr
для удаления одинарных кавычек?
printf "a['xxx']n" | tr -d "'"
a[xxx]