Извлечь последнюю строку многострочной строки

Вы хотите прочитать руководство xargs и найти -L и флаги -P .

tail -f logfile.log | grep 'patternline' |
xargs -P 4 -L 1 bash scriptname.sh

Это будет выполнять не более четырех экземпляров команды за раз ( -P 4 ) и с одной строкой ввода для каждого вызова ( -L 1 ).

Добавьте -t в xargs , чтобы увидеть, что будет выполнено.

3
25.12.2015, 23:10
1 ответ

Хотя $''' в наши дни довольно переносимо (например, BSD sh поддерживает if, хотя его нисходящий форк dash не поддерживает), POSIXLY:

eval 'printf "%s\n" "${datetime##*"'"$(printf '\n"')}\""

... будет работать, даже если это раздражает. Однако я обычно храню новую строку в переменной $nl, и поэтому:

printf "%s\n" "${datetime##*$nl}"

... гораздо удобнее. И, конечно, вы можете просто сделать:

printf "%s\n" "${datetime##*"
"}"

..., но это выглядит немного забавно, возможно.

2
27.01.2020, 21:12

Теги

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