Удалить строки в нескольких файлах в папке один раз (избежать бесконечного цикла)

У меня есть несколько файлов в одной папке, и я хочу удалить первые строки во всех них. Если я сделаю это:

sed -i.bak '1,2000d' *.dat

, первые 2000 строк будут удалены, но тогда имя файла будет по-прежнему в форме *.dat, а следующие 2000 строк будут удалены, и так далее, пока файл не будет пустой. Как я могу это исправить? Желательно без сложного сценария? Слишком много файлов, чтобы просто перечислить все имена файлов, они слишком сложны, чтобы напечатать их все.

4
задан 27 May 2015 в 13:16

1 ответ

Можно использовать для цикла, таким образом, команда выполняется для каждого файла точно однажды:

for file in *.dat; do sed -i.bak '1,2000d' "$file"; done

Уведомление, -i.bak создает резервную копию исходного файла с .bak окончание.

0
ответ дан 27 May 2015 в 13:16

Другие вопросы по тегам:

Похожие вопросы: