Изменить команду sed, чтобы перехватить подстроки - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть пример текста:

"are "insulin sensitizers" "

Я пытаюсь использовать приведенную ниже команду, чтобы найти и заменить команду xml quote одинарной кавычкой, но она работает только для первой, а вторая, следующая за «сенсибилизаторами», осталась без изменений.

Команда:

grep -rl """ ./ | xargs sed -i "s/"/'/" 

результат:

"are 'insulin sensitizers" "

желаемый результат:

"are 'insulin sensitizers' "

1 Ответ

0 голосов
/ 30 апреля 2018

Вам потребуется использовать флаг g в sed для глобальной замены:

grep -Zirl """ . | xargs -0 sed -i "s/"/'/g"

Также обратите внимание на использование опции -Z в grep и -0 в xargs для обработки файлов со специальными символами и пробелами.

Согласно man grep:

-Z, --null

Вывести нулевой байт (символ ASCII NUL) вместо символа, который обычно следует за именем файла.

...