file
コマンドの出力を表示するためにls -laの出力を変更しようとしています。次のコマンドはこの目的に適しています。
find /opt -type f | xargs ls -let | awk 'BEGIN { OFS="\t" } { sprintf("file \"%s\"", $10) | getline type; print type,$1,$3,$4 }' | tr ":" "\t"
ldd
これで、ファイル形式の出力が "ELF.*execuatble"パターンと一致する場合は、コマンド出力(カンマ区切り)を表示するように変更したいと思います。 awkで使用されている一致キーワードのさまざまな組み合わせを試して、一致が成功すると実行しましたが、役に立ちませif
んldd
でした。
可能ですか?
オペレーティングシステムはSolarisで、kshを使用します。
ベストアンサー1
awkはパターンマッチングを提供します
awk '/ELF*.executable/ { ... }'
編集:あなたの場合:
find /opt -type f | xargs ls -let | awk 'BEGIN { OFS="\t" } /ELF*.executable/ { sprintf("file \"%s\"", $10) | getline type; print type,$1,$3,$4 }' | tr ":" "\t"