find にファイル名を処理させたらどうなるでしょうか?
find . -maxdepth 1 -iname '*syed*' -exec du -ch {} +
これはどうですか?:
find . -maxdepth 1 -iname '*syed*' -print0 | xargs -0 du -ch
オプションの説明:
find
– ファイルの検索に使用していたもの-print0
– 各結果をヌル文字で分割します。これは、ファイル名には使用できない文字です
xargs
– 標準入力 (stdin) からパイプされたコマンドに引数をアセンブルします-0
– null 文字で分割された各引数を受け取りますdu -ch
– ファイル引数を渡すコマンド
sed
を提案した理由について \
のエスケープ方法は機能しません 追加しようとしている文字は、シェル引数区切り文字 (" ") エスケープは既に行われています。スペースで区切られた各単語は、既に引数になっています。
xargs
を使用した私のソリューション 各引数が find
からのパスであることを保証します 、スペースに関係なく。