Есть некоторый файл, который имеет следующую условную структуру:
<это не нужно удалять>
<это нужно удалять>
<это не нужно удалять>Можно ли написать скрипт,который бы удалял строки с определенной части файла и до определенной части файла?
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Работа в командной строке → Удаление из файла строк
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Есть некоторый файл, который имеет следующую условную структуру:
<это не нужно удалять>
<это нужно удалять>
<это не нужно удалять>Можно ли написать скрипт,который бы удалял строки с определенной части файла и до определенной части файла?
Lupo Alberto, спасибо за ответ. А как-нибудь с помощью команды sed это можно сделать?
А как-нибудь с помощью команды sed это можно сделать?
sed '/Remove\ it/,/Remove\ it/d' test.txt
ivan--b пишет:А как-нибудь с помощью команды sed это можно сделать?
Lupo Alberto⇓ пишет:sed '/Remove\ it/,/Remove\ it/d' test.txt
Я только начинаю в этом разбираться, так что не удивляйтесь так пожалуйста.Можете посоветовать какую-нибудь книгу по написанию shell-скриптов?
http://tldp.org/LDP/abs/html/
http://www.bash-scripting.ru/abs/chunks/
http://tldp.org/LDP/abs/html/
http://www.bash-scripting.ru/abs/chunks/
Спасибо)))
P.S. Вот небольшие заметки от Даниеля Роббинса — основателя Gentoo и Funtoo. Мне очень нравятся 
http://www.funtoo.org/wiki/Bash_by_Example,_Part_1
http://www.funtoo.org/wiki/Bash_by_Example,_Part_2
http://www.funtoo.org/wiki/Bash_by_Example,_Part_3
http://www.funtoo.org/wiki/Awk_by_Example,_Part_1
http://www.funtoo.org/wiki/Awk_by_Example,_Part_2
http://www.funtoo.org/wiki/Awk_by_Example,_Part_3
http://www.funtoo.org/wiki/Sed_by_Example,_Part_1
http://www.funtoo.org/wiki/Sed_by_Example,_Part_2
http://www.funtoo.org/wiki/Sed_by_Example,_Part_3
Я много времени потеряю пока разбирусь, где у меня ошибка. Может кто-нибудь поможет мне?
Вообщем задача таже самая, но файл не один их несколько и они находять в директории copy. Я написал скрипт:
sed -n -e '/от куда нужно выводить/,/до куда нужно выводить/p' copy/имя файла.txt >>copy/c3.txt
sed -n -e '/от куда нужно выводить/,/до куда нужно выводить/p' copy/имя файла.txt >> copy/c3.txt
echo "нужный текст" >> copy/c3.txt
echo "нужный текст" >> copy/c3.txtСам скрипт находится в родительской директории copy.Для одного файла скрипт работает нормально. Можно конечно прочитать все файлы каждый раз изменяя имя файла в скрипте, но лень
. Можно ли как-нибудь сделать так что бы скрипт прочитал все файлы в директории обработал их и сохранял весь обработынай текст каждый раз в другой файл? К примеру файл, который нужно обработать, имеет имя 1.txt, а файл, в который будет направлен текст будет иметь имя с1.txt.Следующий файл 2.txt, а файл назначения с2.txt.И так до конца пока не будут обработаны все файлы.
Я сам пробовал дописать свой скрипт, но у меня где-то ошибки.Вот что я пробовал написать:
sed -n -e '/от куда нужно выводить/,/до куда нужно выводить/p' copy/*.txt >>copy/с*.txt
sed -n -e '/от куда нужно выводить/,/до куда нужно выводить/p' copy/*.txt >> copy/с*.txt
echo "нужный текст" >> copy/с*.txt
echo "нужный текст" >> copy/с*.txtФайлы читаются все, но почему-то все данные сохраняются в один файл с*.txt
Пробовал и так:
i=*
sed -n -e '/от куда нужно выводить/,/до куда нужно выводить/p' copy/имя файла.txt >>copy/c$i.txt
sed -n -e '/от куда нужно выводить/,/до куда нужно выводить/p' copy/имя файла.txt >> copy/c$i.txt
echo "нужный текст" >> copy/c$i.txt
echo "нужный текст" >> copy/c$i.txtНа этот раз все данные сохраняюся в файл $i.txt.В чем у меня может быть ошибка?
А по окончании работы скрипта нужно чтобы файлы с которых считывался текст были удалены, а новые файлы были переименованы в название файлов,с которых считывался текст.Тоесть в их имени должно быть убрано "c".Например файлы имеют имена с1.txt c2.txt, а нужно чтобы они назывались с1.txt, c2.txt. Над этим я еще не думал, но думаю здесь у меня тоже будут ошибки. Может кто-нибудь посоветует как это сделать? 
ivan--b, посмотри в ABS на то, как используются циклы.
будет что-то вроде:
find -maxdepth 1 -type f | while read i; do
command "$i" >"new_$i"
doneСтраницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Linux Forum → Работа в командной строке → Удаление из файла строк
Форум работает на PunBB, при поддержке Informer Technologies, Inc