昨日の続き

http://d.hatena.ne.jp/dwarfjay/20131002/1380710917の続きです。世の中にはxargsというのがあることを思い出しました。

perlなら、

ldd /sbin/e2fsck | perl -wnle '/(\/lib\d*\/[\w-]+\.so\.*[\d\.]*)/ and print $1' | xargs cp -vLt .

awkなら、

ldd /sbin/e2fsck | awk 'NF==2 {print $1}; NF>2 {print $3}' | awk '/^\//' | xargs cp -vLt .

awkの場合は、制御構文だとか変数管理の煩わしさを避けるために2段階で呼びだしてますが、それはそれでわかりやすいという美点もあると思います。
ただ、将来lddの出力フォーマットが作者の気紛れで変更になる可能性なんかもあるんで、perlバージョンを使おうかな、と思います。