xargsを使用して複数のコマンドの結合出力を一度に処理する方法はありますか?

xargsを使用して複数のコマンドの結合出力を一度に処理する方法はありますか?

複数のシェルコマンドがあり、xargs一緒に処理できるように同じインスタンスにパイプしたいと思います。

ファイルとグローバル式の2つの入力があります。

$ cat subdomains.txt 

admin.site.com
web.site.com
api.site.com

$ ls -d x*

xab  xac  xad

私はこれを次のようにしたいと思います:

admin.site.com:xab
admin.site.com:xac
admin.site.com:xad
web.site.com:xab
web.site.com:xac
web.site.com:xad
api.site.com:xab
api.site.com:xac
api.site.com:xad

私が試したコマンドは次のとおりです(動作しません)。

cat subdomains.txt |  ls -d x* | xargs -I value1,value2 echo 'value1:value2'

ベストアンサー1

GNUを使用してこれを行うことができますparallel

$ printf '%s\n' x* | parallel echo "{1}:{2}" :::: subdomains.txt :::: -
admin.site.com:xab
admin.site.com:xac
admin.site.com:xad
web.site.com:xab
web.site.com:xac
web.site.com:xad
api.site.com:xab
api.site.com:xac
api.site.com:xad

おすすめ記事