Я не нашел ответ на этот вопрос при загрузке Google, Stackoverflow или любого другого источника, поэтому я решил попросить меня здесь.Замена специальных символов, которые находятся внутри кавычек внутри файлов
В GNU Bash (Ubuntu), я пытаюсь только заменить специальные символы, кавычки в файле с именем test.txt, который имеет следующее содержание
foo_bar "foo_bar"
так, что в результате содержание будет быть
foo_bar "foo bar"
В настоящее время у меня не было никакой удачи, я попробовал несколько решений, таких как
touch test2.txt
grep -o '".*"' test.txt | sed s/"_"/" "/g > test2.txt
rm test.txt
rename s/"test2"/"test"/ test2.txt
, который в противном случае был бы прав, но эта команда заставляет содержимое файла быть только «foo bar», а не весь файл. Я ищу способ напрямую заменить цитируемые специальные символы внутри файлов, как sed, так и awk.
Что произойдет, если произойдет следующее: 'foo bar" bar \ "baz" '? – andlrc
Не уверен, что экранированные кавычки являются требованиями OP. Если да, тогда ответ необходимо соответствующим образом изменить. – anubhava
Спасибо за все ответы. смог их использовать. – RuneZhevitz