Привет всем !
Я столкнулся с такой проблемой.
В общем я добавляю строку вот этой командой
echo "Моя строка" >> путь к файлу в котором добавить"а какой командой эту строку удалить ?
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Работа в командной строке → Удаление строки из файла
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Привет всем !
Я столкнулся с такой проблемой.
В общем я добавляю строку вот этой командой
echo "Моя строка" >> путь к файлу в котором добавить"а какой командой эту строку удалить ?
sed -i "/Ваша строка/d" "путь к файлу в котором надо удалить"sed -i "/Ваша строка/d" "путь к файлу в котором надо удалить"
удалит все строки, в которых есть "Ваша строка". если нужно точное совпадение, то:
sed -i "/^Ваша строка$/d" "путь к файлу в котором надо удалить"
ну и вообще какой-нить учебник по сед в руки...
вот что я получил в ответ
sed: -e expression #1, char 17: extra characters after command
sed: -e expression #1, char 17: extra characters after command
а строка мы угадывать должны?
sed -i '/^Ваша строка$/d' "путь к файлу в котором надо удалить"
// fixed
sed -i "/^linux addons/dproto/dproto_i386.so$/d" "home/cgss/service16/cs/cstrike/addons/metamod/plugins.ini"очевидно же, что слеш - это спец. символ... их надо экранировать. ну и по поводу кавычек уже написал фикс...
sed -i '/^linux addons\/dproto\/dproto_i386.so$/d' "home/cgss/service16/cs/cstrike/addons/metamod/plugins.ini"
очевидно же, что слеш - это спец. символ... их надо экранировать. ну и по поводу кавычек уже написал фикс...
sed -i '/^linux addons\/dproto\/dproto_i386.so$/d' "home/cgss/service16/cs/cstrike/addons/metamod/plugins.ini"
спасибо
sed -i /linux addons/dproto/dproto_i386.so/d /home/cgss/service16/cs/cstrike/addons/metamod/plugins.ini
а вот так не надо... - удалит все строки, в которых есть одно из linux addons proto proto_i386.so... хорошо только, что точек с запятой не хватает... и кавычек...
А как сделать замену строк одна на другую по такому же принципу ?
sed -e 's/что заменить/на что/' -i "файл"
ЗЫ: неплохой учебник: http://drbatty.ru/sed/index.html
а вот так не надо..
дык надо sed -i*.bak 's/xxx/yyy/' file.txt
И если в file.txt окажется не то, то останется старый файл, переименованный в file.txt.bak
Камрады!
Чтобы не флудить в отдельной теме...
Linux CLI
Есть 500 текстовых файлов по 500 рекордов к каждом.
Проблема, что к конце каждого есть лишняя пустая строчка
Как удалить эту пустую строчку в этих 500 файлах в цикле, а заодно и все лишние пробелы.
спасибо
UPD Заодно, как можно с цикле создать 1000 файлов со следющими записями
file1:
user1,81901111XXXX
....
user1000,81901111YYYY
file2:
user1001,81902222XXXX
....
user2000,81902222YYYY
и т.д.
81902222YYYY - подразумевает целое число длины 8, с префикксом 8190
Как удалить эту пустую строчку в этих 500 файлах в цикле, а заодно и все лишние пробелы.
Если под «лишним пробелом» подразумевается замена произвольного количества пробелов и отступов одним пробелом, то
find . -name '*.txt' -exec sed -i'' -e 's/[[:blank:]]\+/\ /g' -e '$d' "{}" \;Команда ищет в текущем каталоге и во всех вложенных текстовые файлы (точнее, файлы с .txt расширением), заменяет произвольное количество пробелов и отступов одним, удаляет последнюю строку (даже если она не пустая!). Копии файлов не создаются!
Команда строго не тестировалась, так что перед использованием обязательный бэкап критически важных данных!
Подскажите! есть сотня файлов. как у всех удалить первую строку?? 
Первое, что в голову взбрело:
lupo@gentoo-laptop test % cat test1.txt
1
2
3
lupo@gentoo-laptop test % cat test2.txt
11
22
33
lupo@gentoo-laptop test % cat test3.txt
111
222
333
lupo@gentoo-laptop test % for i in *.txt; do sed -i '1d' ${i}; done
lupo@gentoo-laptop test % cat test1.txt
2
3
lupo@gentoo-laptop test % cat test2.txt
22
33
lupo@gentoo-laptop test % cat test3.txt
222
333...наверняка, можно и красивее сделать
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Linux Forum → Работа в командной строке → Удаление строки из файла
Форум работает на PunBB, при поддержке Informer Technologies, Inc