2014-01-24 6 views
1

Есть ли способ удалить определенные строки из файла ?. например У меня есть 8 файлов, которые называются Crest_001.dat, Crest_002.dat, ..., Crest_008.dat. Теперь я хочу удалить строки из 10 до 30000 из всех этих файлов. Прямо сейчас я открываю каждый файл вручную в vim и используя следующую команду: «: 10,30000d»Сценарий для удаления определенных строк из файла

Это занимает много времени, поскольку мои файлы огромны! Есть ли способ использовать сценарий для этого?

+0

sed -i.bak '10, 30000d 'Crest_00 {1..8} .dat – user3230419

ответ

2

если ваш СЭД поддерживает -i, вы можете использовать sed

sed -i.bak '10,30000d' Crest_00{1..8}.dat 

оригинальные файлы будут сохранены с расширением .bak

в противном случае вам нужно использовать цикл для запуска sed на каждый файл и перенаправить вывод к другому имени файла.

+0

спасибо, что это сработало! – user3230419

0

!/Bin/Баш

для я в $ (найти. -name 'Crest * .dat' -print 2>/DEV/нуль) сделать SED -i '10, 30000d»«$ i "

Смежные вопросы