я заметил сегодня Bash printf
имеет -v
вариантprintf, игнорируя лишние аргументы?
-v var assign the output to shell variable VAR rather than
display it on the standard output
Если я вызываю, как это работает
$ printf -v var "Hello world"
$ printf "$var"
Hello world
Исходя из трубы не работает
$ grep "Hello world" test.txt | xargs printf -v var
-vprintf: warning: ignoring excess arguments, starting with `var'
$ grep "Hello world" test.txt | xargs printf -v var "%s"
-vprintf: warning: ignoring excess arguments, starting with `var'
Это не то, что это в конце конвейера это аргумент xargs, который принимает только внешние исполняемые файлы (который является '/ usr/bin/printf'). Кроме того, у вас нет результата, если вы не удалите '-v'. –
@DennisWilliamson Вы правы, спасибо. Закрепление. –