sed -i '$a echo - /etc/cache>>$BUFFER' myfile.txt
в $ говорит последняя строка и это добавляет параметр -i записывает файл на месте.
Если вы хотите, чтобы матч в любом месте вы можете адресовать его с регулярным выражением// как это просто убедитесь, спасаясь от/как /, так как СЕПГ ожидает, что регулярное выражение будет воплощено в//
sed -i '/echo + \/etc>>$BUFFER/a echo - /etc/cache>>$BUFFER' myfile.txt
Поскольку в скобке (копия &) вышеуказанного оператора опускается пробел перед первым знаком + (вероятно, из-за ошибки в программном обеспечении, которое запускает сообщения на этом сайте) - вот версия, которая должна работать при копировании):
sed -i '/echo \ + \/etc>>$BUFFER/a echo - /etc/cache>>$BUFFER' myfile.txt
, или если вы хотите избежать побега в одиночном переднем разрезе в будущем (не очень полезно в этом случае с его единственного, но если у вас много передних косых черт - снова странное экранированное пространство происходит только из-за ошибки в программное обеспечение данного веб-сайта (или мой браузер Firefox), если ввести его в командной строке вы можете поставить интервал в два раза себя, как он появляется в аскеров вопрос):
sed -i '\@echo \ + /etc>>[email protected] echo - /etc/cache>>$BUFFER' myfile.txt
не ясно, что вы имеете в виду и то, что ваши примеры хотите показать. – fedorqui
Oke, я изменил свое оригинальное сообщение. – munin24
Возможный дубликат [Вставить строку после первого совпадения с помощью sed] (http://stackoverflow.com/questions/15559359/insert-line-after-first-match-using-sed) – fedorqui