Уникнення подвійних лапок може бути абсолютно необхідним у sed: наприклад, якщо ви використовуєте подвійні лапки у всьому виразі sed (як це потрібно робити, коли ви хочете використовувати змінну оболонки).
Ось приклад, який торкається втечі в sed, але також описує деякі інші проблеми з цитуванням у bash:
PURCHASED="2014-09-01"
SITE="Atlanta"
LOCATION="Room 154"
Скажімо, ви хотіли змінити кімнату, використовуючи скрипт sed, який ви можете використовувати знову і знову, тому ви варіюєте введення таким чином:
Цей скрипт додасть цілий рядок, якщо його там немає, або він просто замінить (використовуючи sed) рядок, що знаходиться там, текстом плюс значення $ i.
if grep -q LOCATION inventory; then
sed -i "/^LOCATION/c\LOCATION=\"$i\"" inventory
else
echo LOCATION='"'$i'"' >> inventory
fi
PS Я написав наведений вище сценарій на декілька рядків, щоб зробити коментарі синтаксичним, але я використовую його як однорядковий рядок у командному рядку, який виглядає так:
i="your location"; if grep -q LOCATION inventory; then sed -i "/^LOCATION/c\LOCATION=\"$i\"" inventory; else echo LOCATION='"'$i'"' >> inventory; fi