У меня есть цикл bash, перемещающийся по строкам в файле, и мне интересно, есть ли способ интерактивно заменить каждую строку содержимым.замена интерактивной строки bash
while read p
do
echo $p
read input
if [ "$input" == "y" ]; then
# DO SOME ON P REPLACEMENT HERE
done<$fname
Из чтения (3) я знаю, что прочитал копии из дескриптора файла в * буфер. Я понимаю, что я могу использовать подстановку sed напрямую, но не могу заставить ее работать в этом контексте цикла bash. Например, сказать, что я хочу, чтобы обернуть выбранные строки:
sed 's/\(.*\)/wrap \(\1\)/'
Усложнение: баш «читать» Команда съедает «\» и продолжает чтение «линии» (это то, что я ищу). Сед, похоже, НЕ. Это означает, что количество строк будет различным, поэтому наивный счетчик, похоже, не подходит, если нужно работать с sed.
почему бы вам не использовать текстовый редактор? – 123
sed - текстовый редактор. этот скрипт будет запущен на довольно минимальном сервере. ищет некоторый уровень автоматизации. – djh
нет, это не так. У вас нет vi или emacs или что-то еще? – 123