Пытаюсь посредством цикла собрать команду для редактора SED.
Среда: Ubuntu 14 / FreeBSD 8.2
средства: Большой текстовый файл, скрипт для его обработки.
Идея такова: при каждом проходе цикла я получаю 2 числа, номера строки начала фрагмента текста и номер конца фрагмента.
Эти фрагменты хочу в конце работы цикла експортировать в другой файл (в идеале удалив из оригинального файла, но это потом...), или удалить из файла, как я дальше и пытался реализовать...
переменная в теле цикла:
sedconstructor="$sedconstructor -e $head_pos,$end_pos d"
в конце цикла переменная содержит такое значение:
echo "$sedconstructor"
-e 1,3 d -e 5,7 d -e 9,11 d -e 13,15 d -e 17,19 d
Идеально, но без '' немогу запустить в sed: sed: -e выражение #1, позиция 3: пропущена комманда
Должно получиться вроде так: -e '1,3 d' -e '5,7 d' -e '9,11 d' -e '13,15 d' -e '17,19 d'
Но уже день бъюсь - и немогу придумать...
Подскажите пожалуйста -Как это оживить.
Вот сам скрипт:
#!/bin/bash
set -x
touch test.txt
echo {1..20} | sed 's/\ /\n/g' > test.txt
for (( cnt=1; cnt<=20; cnt++ ))
do
head_pos=$cnt
end_pos=$(($cnt+2)) #число отвинта...
cnt=$(($cnt+3))
echo $cnt
sedconstructor="$sedconstructor -e $head_pos,$end_pos d"
done
echo "$sedconstructor"
sed $sedconstructor test.txt > result.txt