LINUX.ORG.RU

История изменений

Исправление 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 что бы четко указать, что интересуют только файлы в указанной директории.