xargsの結果{}を$(cmd {})に入れる方法は? [閉鎖]

xargsの結果{}を$(cmd {})に入れる方法は? [閉鎖]

たとえば、 find /usr/lib -maxdepth 1 -type l -iname "*libblas*"|xargs -I{} echo "{} =>" $(realpath {}) 次のように出力したいと思います。

/usr/lib/libblas.so.3gf=>/usr/lib/libblas/libblas.so.3gf.0
/usr/lib/libblas.so=>/usr/lib/libblas/libblas.so.3gf.0
/usr/lib/libblas.a=>/usr/lib/libblas/libblas.a

$()スクリプトが実際に実行される前にin値が拡張されるため、これは機能しません。

この結果を得る方法はありますか? Bashにループはありませんか?

ベストアンサー1

この方法を試すことができます

find /usr/lib -maxdepth 1 -type l -iname "*lib*" -print \
   | xargs -P1 -I{} -- sh -c 'echo -n " {} => " && realpath "{}"'

おすすめ記事