Cerrar.
En j=$j + 200
, debe invocar explícitamente la expansión aritmética, es decir, j=$(( j + 200 ))
.
Y en sed -n '$i,$j p' big_file.txt > $ito$j.txt
, 1 )necesita usar comillas dobles -en lugar de comillas simples en el argumento de sed
, ya que de lo contrario $
se toma literalmente y las variables no se expandirán ; 2 )necesita llaves alrededor de i
, ya que $ito
sería una expansión variable válida.
Además, en contextos aritméticos no necesita (y probablemente no debería )usar $
delante del nombre de la variable.
Entonces, lo reescribiría como:
j=0
for (( i = 1 ; i <= 3801 ; i = i + 200)); do
j=$((j + 200))
sed -n "$i,$j p" big_file.txt > "${i}to$j.txt"
done
Como otros han comentado, probablemente haya una mejor manera de hacerlo, ya que ahora recorre el archivo completo una vez por cada pieza en la que se divide.
Я установил rsyslog
, чтобы посмотреть, какие ошибки я получаю. Я получил следующее
(*system*) NUMBER OF HARD LINKS > 1 (/etc/crontab)
. Небольшой поиск показал мне, что cron
имеет политику безопасности, которая не работает, если есть много жестких -ссылок на его файлы. К сожалению, многоуровневая файловая система Docker -приводит к тому, что файлы содержат множество жестких -ссылок.
Чтобы исправить это, я добавил touch /etc/crontab /etc/cron.*/*
в сценарий запуска перед запуском cron
. Этот дис -прикрепляется из других файлов -.
Новая точка входа:
#!/bin/sh
#fix link-count, as cron is being a pain, and docker is making hardlink count >0 (very high)
touch /etc/crontab /etc/cron.*/*
service cron start
# Hand off to the CMD
exec "$@"
Я проверил, работает
Чтобы заставить cron
работать, вам придется.
cron
— если не установлено /etc/cron.daily/
(или еженедельно ). Убедитесь, что имя вашего скрипта -содержит только буквы, цифры, дефисы, без точек . (Не спрашивать )см. Задание cron не запускается из cron.dailycron
файлов конфигурации s до одного :do touch /etc/crontab /etc/cron.*/*
— (, если в докере ). Я поместил его в скрипт start -up. cron
:service cron start
— (Если на базовой ОС, без инициализации. Как и во многих базовых образах для использования в докере ). Я поместил его в сценарий запуска -.Сценарий точки входа из этого ответа и все остальное из вопроса сделает это. Текущий проект можно получить с помощьюhg clone ssh://hg@bitbucket.org/davids_dad/a_website