История изменений
Исправление Saivrem, (текущая версия) :
Попробуй поставить на крон вот это:
#!/bin/bash
for i in $(find /origin/ -maxdepth 1 -name "*.txt"); do
if [ $(wc -c < $i) -gt 1000000 ]; then
filename=$(basename $i)
split --lines=5000 $i /destination/"${filename%.*}_" --additional-suffix=".txt" --numeric-suffixes=1
rm $i
else
mv $i /destination/
fi
done
Разбивает по 5к строк
Так же учитывай, что find будет смотреть рекурсивно все каталоги от указанного вглубь, если нужно это регулировать, добавь параметр maxdepth, например -maxdepth 1
, что бы четко указать, что интересуют только файлы в указанной директории.
Исходная версия Saivrem, :
Попробуй поставить на крон вот это:
#!/bin/bash
for i in $(find /origin/ -maxdepth 1 -name "*.txt"); do
if [ $(wc -c < $i) -gt 1000000 ]; then
filename=$(basename $i)
split --bytes=500000 $i /destination/"${filename%.*}_" --additional-suffix=".txt" --numeric-suffixes=1
rm $i
else
mv $i /destination/
fi
done
Разбивает по байтам (построчное биение так себе идея имхо).
Так же учитывай, что find будет смотреть рекурсивно все каталоги от указанного вглубь, если нужно это регулировать, добавь параметр maxdepth, например -maxdepth 1 что бы четко указать, что интересуют только файлы в указанной директории.