2015-01-06 2 views
0

Например, я хочу взять содержание файла с именем «комментарий», чтобы быть значение опции -v SetAttr, в что-то вродекак принять стандартный ввод как значение параметра команды?

cat comment | setfattr -n user.comment -v - filewanttotaged 

, но это не работает, и не делать

cat comment | xargs setfattr -n user.comment -v - filewantedtotaged 

В последнем случае контент рассматривается как файловая форма для setfattr, а не значение опции -v

Так как это сделать? Большое спасибо!

+0

возможный дубликат [Unix - «xargs» - выход «в середине »(не в конце!)] (http://stackoverflow.com/questions/1383170/unix-xargs-output-in-the-middle-not-at-the-end) –

ответ

2

вы можете использовать xargs, но убедитесь, что его аргументы не в конце, но после опции «-v»:

cat comment | xargs -i setfattr -n user.comment -v {} filewantedtotaged 
+0

Спасибо! Итак, ключ здесь - добавить -i в xargs. –

+0

Другой вопрос в том, что если в файле комментариев есть «\ n», только первая строка может перейти в значение опции -v. Поэтому должен быть какой-то способ сказать xargs, чтобы избежать этого конца строки, я проверю. Вы знаете, как это сделать? –

+0

Да, добавьте -0 в xargs сделает –