ループを使用せずにこのコマンドからbashサブプロセスを削除できますか?

ループを使用せずにこのコマンドからbashサブプロセスを削除できますか?

wc -m現在動作しているコマンドがあるので、これは純粋に審美的な質問ですが、明示的なループやサブシェル/サブシェルプロセスを実行せずに、クライアント配列の各要素でこれを実行したいと思います。 BashはmacOS上で動作するv5.0.18です。

clients=(one two three)
printf '%s\n' "${clients[@]}" | xargs -I{} bash -c 'echo -n {} | wc -m' | sort -nr | head -1

ベストアンサー1

もう少しインターネット検索を行った後、次のような素晴らしいawkスクリプトを見つけました。

printf '%s\n' "${clients[@]}" | awk '{print length}' | sort -nr | head -1

おすすめ記事