Как мне скопировать начало нескольких файлов в Linux?
Я хочу скопировать кучу файлов (*.txt) из одного каталога в другой в Ubuntu. Я хочу уменьшить их размер, поэтому я использую голову, чтобы получить первые 100 строк каждой.
Я хочу, чтобы новые файлы сохранили свои оригинальные имена, но были в подкаталоге small/
, Я пытался:
head -n 100 *.txt > small/*.txt
но это создает один файл с именем *.txt
, Я также попробовал:
head -n 100 *.txt > small/
но это дает Is a directory
ошибка.
Это должно быть легко, правда, но я довольно плохо разбираюсь в Linux. Буду признателен за любую оказанную помощь.
2 ответа
Решение
Вам придется создать цикл вместо:
for file in *.txt; do
head -n 100 "$file" > small/"$file"
done
Это проходит через все .txt
файлы, выполняющие head -n 100
во всех них и вывод в новый файл в small/
каталог.