Intereting Posts
Заставка Maze на старых компьютерах Unix Не удается подключиться к ethernet на кабельном модемом Как захватить все входящие пакеты в NIC, даже те пакеты не принадлежат мне Разбиение в awk не на печать значений массива почему требуется много времени, чтобы запрос bash на высокую загрузку системы Какая была первая платформа Unix для команды «да»? Получить контактную информацию системного администратора с терминала Соединение SSH замерзает после увеличения выхода при неактивном времени Как изменить имя localhost на пользовательское имя, доступное для других пользователей в локальной сети Команда Unix не работает в скрипте Tcl Как su на www на OpenBSD? Невозможно создать partiton при установке RHEL 5.8 Добавление источников в sources.list по-прежнему дает мне E: невозможно найти баннер пакетов Учетные записи дросселя после неудачных попыток входа в систему SSH Что такое hotplug?

Не удалось выполнить скрипт 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