Как вывести новую строку, если образец из колонки совпадает в 2 строках?

Если у вас есть сценарий, который работает правильно при запуске из командной строки в оболочке, но не запускается из cron , вы можете есть проблема со средой, в которой работает cron . Попробуйте добавить:

2> /tmp/error.txt 

В конец вашего оператора, который не будет выполняться в cron , чтобы узнать, какие ошибки происходят во время исполнение. Выполните команду с помощью cron и прочтите содержимое файла /tmp/error.txt .

Когда у меня возникла проблема с запуском rsync из файла cron , я получил следующий вывод в моей ошибке .txt файл:

ld.so.1: rsync: fatal: libiconv.so.2: open failed: No such file or directory.

Проблема заключалась в том, что среда не была настроена на поиск необходимых библиотек для выполнения команды. Я добавил оператор переменной среды LD_LIBRARY_PATH в начало моего сценария, чтобы установить для переменной LD_LIBRARY_PATH то же значение, что и в моем файле .profile поскольку сценарий выполнялся правильно, когда я запускал его из оболочки, используя свой профиль.

"export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"

После этого все заработало. Моя программа rsync работает вне / usr / local / lib , поэтому я предполагаю, что ссылка на эту область была той, которая решила мою проблему. У вас также могут быть другие проблемы с путями, если вы не используете полный путь при обращении к другим файлам в вашем скрипте.

0
16.01.2019, 17:39
2 ответа

Вот так:

$ awk '{print} !(NR%2){if($2 == last) print "Match"; else print "Not"} {last = $2}' file
transcr_15824 -
YML042W -
Match
transcr_18545 -
YCR105W +
Not
transcr_16934 +
YDR032C +
Match
transcr_15237 +
YDL008W -
Not
2
28.01.2020, 02:30
perl -pae '($_.= <>).= qw/NO MATCH/[0+/\n.*\s\Q$F[1]\E$/]. $/'  input

Perl работает в режиме автоматического разделения. 2-е поле $F[1] сравнивается в следующей строке, <>, и в зависимости от наличия совпадения или отсутствия совпадения добавляется к текущей строке $_.

0
28.01.2020, 02:30

Теги

Похожие вопросы