Используя awk, вы можете извлекать числа различными способами. Сценарий ниже ожидает увидеть шаблон:
(
code
)
... что не является дурацким -доказательством,поэтому я пытаюсь еще больше ограничить область, ограничив совпадения строками, начинающимися со строки rsync error:
.
Оставшийся код print
просто корректирует параметры длины строки, чтобы учесть начальный и конечный текст.
awk '/^rsync error:.* \(code [[:digit:]]+\) / \
{
match($0, " \\(code [[:digit:]]+\\) ");
print substr($0, RSTART + 7, RLENGTH - 9) ;
}' input
$(COMMAND)
— это синтаксис замены команды . То есть вся команда должна быть заключена в круглые скобки. lower_case
по соглашению. Результат:row_count="$(wc --lines "$1")"
.
$1
должен находиться внутри вызова $(...)
NROWS=$(wc -l $1)
Синтаксис $(...)
в основном означает «запустить команду и вернуть вывод в виде строки», которую затем можно присвоить переменной.
Таким образом, эта команда будет означать «выполнить команду wc -l $1
и сохранить результаты в переменной NROWS
»