Не удалось выполнить скрипт bash через cron / crontab

У меня есть приведенный ниже cmd в extract.sh .

Он работает, когда выполняется в терминале для поиска «ABC123» в orig.txt и выводится на result.txt оставшееся содержимое после обнаружения «ABC123».

К сожалению, когда я запускаю скрипт через cron / crontab, он, похоже, игнорирует / пропускает команду «больше» и просто выводит orig.txt в result.txt.

Любая помощь приветствуется.

——————— ————————– extract.sh —————

 #!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . $HOME/.profile more +/"ABC123" orig.txt > result.txt 

———————- кронтаб ————————— —————-

 SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin * * * * * /root/extractpdf_v3.sh * * * * * /bin/bash /root/extract.sh 

Вы можете использовать sed а не more , поскольку вы отмечаете, что в комментарии вы нуждаетесь в содержимом файла после строки, соответствующей определенному слову. Например, входной файл:

 Test before Test match Test after 

команда:

 sed -n -e '/match/,$p' 

вывод:

 Test match Test after 
  • -n отключает поведение по умолчанию sed печати каждой строки после выполнения его скрипта на нем,
  • -e указал скрипт sed,
  • /match/,$ – это выбор диапазона адресов (строк), означающий первую строку, соответствующую регулярному выражению «match» (например, grep) до конца файла ($)
  • p – команда печати, которая печатает текущую строку.

Для получения более подробной информации исходный ответ https://stackoverflow.com/questions/7103531/how-to-get-the-part-of-file-after-the-line-that-matches-grep-expression-first