данной командой вставляется пустая строка перед выражением (цифрой 5 в данном случае)
sed -i -e '/5/{x;p;x;}' tt
как сделать, чтоб вставлялся определенный текст, а не пустая строка?
> данной командой вставляется пустая строка перед выражением (цифрой 5 в данном случае)
> sed -i -e '/5/{x;p;x;}' tt
> как сделать, чтоб вставлялся определенный текст, а не пустая строка?Попробуйте так:
sed -i -e '/5/iопределенный текст' tt
>> данной командой вставляется пустая строка перед выражением (цифрой 5 в данном случае)
>> sed -i -e '/5/{x;p;x;}' tt
>> как сделать, чтоб вставлялся определенный текст, а не пустая строка?
> Попробуйте так:
>sed -i -e '/5/iопределенный текст' ttP. S. На тот случай, если текст нужно будет вставлять не отдельной строкой, а в одной
строке с выражением, воспользуйтесь такой командой:sed -i -e 's/5/определенный текст &/g' tt
proxy# sed -i -e '/5/iyyyyyyy' tt
sed: 1: "/5/iyyyyyyy": command i expects \ followed by text
proxy# sed -i -e '/5/i\yyyyyyy' tt
sed: 1: "/5/i\yyyyyyy": extra characters after \ at the end of i command
proxy# sed -i -e '/5/i\yyyyyyy\' tt
sed: 1: "/5/i\yyyyyyy\": extra characters after \ at the end of i command
proxy# sed -i -e '/5/iyyyyyyy\' tt
sed: 1: "/5/iyyyyyyy\": command i expects \ followed by text
proxy# sed -i -e '/5/i yyyyyyy\' tt
sed: 1: "/5/i yyyyyyy\": command i expects \ followed by text
proxy# sed -i -e 's/5/ddd &/g' tt - не заменяет, а добавляет перед выражением
> proxy# sed -i -e 's/5/ddd &/g' tt - не заменяет, а добавляет
> перед выражениемНу да, добавляет. У вас ведь нигде не сказано, что нужна именно замена. А чтобы sed
заменял искомое выражение, уберите из команды амперсанд:sed -i -e 's/5/ddd/g' ttПо поводу ошибок в команде "i" могу сказать одно: читайте свой man sed, поскольку
вы не поделились никакой информацией ни об используемой ОС, ни о версии sed. Кроме того, у
меня таких ошибок не возникает:$ echo -e "125369\ndsf\n5\nfd989" | sed -e '/5/iопределенный текст'
определенный текст
125369
dsf
определенный текст
5
fd989$ echo -e "125369\ndsf\n5\nfd989" | sed -e 's/5/ определенный текст &/'
12 определенный текст 5369
dsf
определенный текст 5
fd989$ echo -e "125369\ndsf\n5\nfd989" | sed -e 's/5/ определенный текст /'
12 определенный текст 369
dsf
определенный текст
fd989$ sed --version
GNU sed версия 4.2.1
sed -i -e 's/5/ddd/g' ttспасибо, этого достаточно