Я не могу получить самую основную команду 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.

5
задан 22 April 2012 в 15:34

2 ответа

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

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

Существует много информации о Sed онлайн. Например: http://www.catonmat.net/blog/sed-one-liners-explained-part-one/

0
ответ дан 22 April 2012 в 15:34

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

0
ответ дан 22 April 2012 в 15:34

Другие вопросы по тегам:

Похожие вопросы: