Использование sed из оболочки андроида

Я знаком с sed на эмуляции терминала Android: версия, в которой я использую sed включенную в игрушечную коробку, установленную на моем устройстве, не поддерживаемом устройством Sony. sed --version (или toybox sed –version) дает тот же результат:

Это не GNU sed 9.00

Теперь я прочитал конкретное руководство от toybox sed и попробовал несколько простых лайнеров (идея состоит в том, чтобы включить их в сценарии, которые я могу запустить вручную). Теперь первое, что я заметил, это то, что если я попытаюсь включить скрипт в простые скобки (es sed -e 's / foo / bar /' file), это неправильно интерпретируется.

Команда работает с двойными скобками, но у меня возникают проблемы с интерпретацией сценариев (или, может быть, я ошибаюсь). Пример. Я пытаюсь заменить слово внутри файла. Файл представляет собой строку «stringa di test», которую я намерен преобразовать в «stringa di prova». В результате строка заменяется, но предыдущая строка прикрепляется к остальной части строки:

 user:$ ls file.txt n.sh s.sh save script_gian.sh sed_script user: $ cat file.txt stringa di test user:$sed -i -e "s/test/prova/g" file.txt < ^C1|user:$ cat file.txt stringa di test user:$ sed -r -e "s/test/prova/1" file.txt > f.txt < user:$ ls f.txt file.txt file.txtFD4OVI n.sh s.sh save script_gian.sh sed_script user:$ cat f.txt stringa di provastringa di test user:$ cat file.txt stringa di test user: $ 

Еще одна интересная вещь заключается в том, что попытка использовать g-флаг (глобальный) приводит к тому, что sed зависает и должен быть прерван командой CONTROL C. -i, также приводит к зависанию sed.

Я также попытался передать строку в sed:

 cat file.txt | sed -e "s/foo/bar/" > newfile.txt 

Но результат точно такой же. Слово внутри строки заменяется, и строка, как было до подстановки, добавляется сразу после этого (это также удаляет оставшиеся символы в строке). Я использую sed неправильно или есть что-то в версии sed пытаясь использовать?

Я мог бы подтвердить это (благодаря каналу #toybox irc), что проблема действительно была ошибкой в ​​toybox sed, которая должна была быть решена, но Android M по-прежнему поставляется с устаревшей версией toybox. Это ссылки на список рассылки toybox (который, увы, я пропустил), где обсуждались вопросы:

http://lists.landley.net/pipermail/toybox-landley.net/2016-January/007897.html

http://lists.landley.net/pipermail/toybox-landley.net/2015-September/004415.html

Жаль, что я буду ждать текущей версии toybox с будущим обновлением Android.