2015-03-30 2 views
1

У меня есть что-то вроде:результате труба пропила к следующему аргументу и CONCAT в строку

cut -d ' ' -f2 | xargs cat *VAR_HERE.ss 

, где я хочу, чтобы использовать результат резания в качестве переменной и Concat выход разреза между * и . таким образом, чтобы cat будет использовать имя для вывода соответствующего файла. например, если результат резания:

$ cut -d ' ' -f2 
001 

я принципиально хочу, чтобы вторая команда, чтобы сделать:

$ cat *001.txt 

я видел xargs был использован, но я изо всех сил, чтобы узнать, как использовать его до явно вызывают выход разреза, вместо того, чтобы предполагать, что вторая команда требует только точного вывода. очевидно, здесь я хочу конкатрировать вывод cut в строку.

благодарит

ответ

2

Вы можете сделать:

cut -d ' ' -f2 | xargs -I {} bash -c 'cat *{}.txt' 
+0

@ анубхава. Спасибо. если бы у меня было -f2-3 и передал их, как бы я назвал f2 и f3 явно в xargs? кажется, что использование {} нотации заставит их обоих. – brucezepplin

+0

Что я имею в виду, могу ли я сделать xargs - I {} {} bash -c 'echo {1} cat * {2} .txt'? – brucezepplin

+1

Вы можете использовать 'xargs -n 2 bash -c 'echo" <$0><$1> "' 'где' $ 0' и '$ 1' - первый и второй аргументы. – anubhava