sed сообщает "неизвестная команда"

sed сообщает "неизвестная команда"

Я написал это:

sudo sed -i ‘s/3389/3390/g’ /etc/xrdp/xrdp.ini

Это привело к следующей ошибке:

sed: -e expression #1, char 1: unknown command: `'

решение1

Сравните ваши

 sudo sed -i ‘s/3389/3390/g’ /etc/xrdp/xrdp.ini

против правильного

 sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini

Проверьте различные типы котировок.

Будьте осторожны при копировании и вставке из редакторов документов, таких как Writer или Word, поскольку они часто автоматически меняют кавычки (и другие элементы) в соответствии с вашими локальными настройками.

решение2

У меня была та же ошибка, но причина была другой. Я не использовал символ ` и не копировал-вставлял код откуда-то. Я писал скрипт sed с условием и использовал новую строку для команды. Размещаю это здесь на случай, если у кого-то еще будет такая же проблема и принятый ответ не поможет.

Вот как воспроизвести ошибку:

echo class:myclass > myfile
cat script
/class:/
s/myclass/MYCLASS/g #ctrl+d to exit
sed -f script myfile

Выход:

sed: file script line 2: unknown command: `
'

Для исправления ситуации можно либо поместить команду после условия (на той же строке), либо использовать фигурные скобки, чтобы скрипт выглядел следующим образом:

/class:/ s/myclass/MYCLASS/

Или это:

/class:/ {
s/myclass/MYCLASS/
}

Связанный контент