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 からのパスであることを保証します 、スペースに関係なく。