Вы можете попробовать следующее:
mkdir -p "DESTDIR"
for i in *.zip ; do
unzip "$i" "THEFILE" -d "DESTDIR"
mv "DESTDIR/THEFILE" "DESTDIR/$(basename "$i" .zip)_THEFILE"
done
Замените DESTDIR
на путь назначения. И THEFILE
с именем
файла в каждом ZIP-файле, который вы хотите извлечь.
Файлы переименовываются в соответствии с именем файла ZIP-файла.
Кажется, он читает по одной строке вместо того, чтобы сразу считывать весь файл в память. Я провел для вас небольшой тест:
Создайте файл, содержащий 3 строки:
$ echo -e "Line 1\nLine 2\nLine 3" >> teslines.txt
$ cat testlines.txt
Line 1
Line 2
Line 3
Создайте этот небольшой скрипт:
#!/bin/bash
while read LINE; do
echo "$LINE"
sleep 2
done < testlines.txt
Запустите скрипт и начните добавлять новые строки:
$./readlinetest.sh
Line 1
# Somewhere around here i started adding more lines to the file:
$ echo "Line 4" >> testlines.txt
$ echo "Line 5" >> testlines.txt
$ echo "Line 6" >> testlines.txt
$ echo "Line 7" >> testlines.txt
# Output continued:
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Это работает примерно так же, как tail -f
запускалось на каком-то живом логе.