Я не могу выполнить самую простую команду sed в командной строке.

Я не могу выполнить самую простую команду sed в командной строке.

Я чувствую себя полным новичком. Почему это не работает?

$ echo foobar > textfile
$ sed /foo/bar/ textfile
sed: can't find label for jump to `ar/'

Я также пробовал sed "/foo/bar/" textfileи sed '/foo/bar/' textfile, но все они выдают одну и ту же ошибку.

Использую Ubuntu 8.04 и GNU sed версии 4.1.5 через bash.

решение1

Попробуй это: sed 's/foo/bar/' textfile.

  • Цитаты вокруг заявления являются хорошей практикой
  • sдля замены. Это команда, которую вы хотите выполнить. fooэто поисковый запрос barзамена.

В сети есть много информации о sed. Например:http://www.catonmat.net/blog/sed-one-liners-explained-part-one/

решение2

Вам нужно дать sedкоманду; он анализирует то, что вы ему дали, как шаблон поиска /foo/, за которым следует команда b ar/(ветвь к метке ar/). Вероятно, вы имели в виду 's/foo/bar/', что означает замену первого вхождения fooна barв каждой строке.

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