Я чувствую себя полным новичком. Почему это не работает?
$ 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
в каждой строке.