Сбрасывание строк оболочки cmd вложенных котировок

Gert Gottschalk спросил: 03 февраля 2018 в 11:53 в: shell

У меня много фоновых заданий, которые загружают файлы соответствующих журналов. Используя команду watch, я отслеживаю соответствующую последнюю строку в журнале следующим образом.

watch "ls -rtdc1 base_*.log | tail -20 | xargs -I % sh -c 'tail -vn1 % | cut -c1-180'"

Это выглядит хорошо, однако у него есть имена файлов из tail -v и следуя строке из журнала с разрывом строки. Я хочу держать оба на одной линии. Следующий небольшой awk cmd просто объединит две строки, и он будет проверяться индивидуально.

awk 'NR%2{printf "%s ",$0;next;}1'

Хорошо, теперь объединение двух - это вызов. Много одиночных и двойных кавычек, на которые нужно следить. Я пробовал следующую строку: "

watch "ls -rtdc1 base_*.log | tail -20 | xargs -I % sh -c 'tail -vn1 % | awk \'NR%2{printf "%s ",$0;next;}1\' | cut -c1-180'"

Итак, мой вопрос - найти правильную последовательность экранирования для строки cmd.

Ваши отзывы очень ценятся .


0 ответов