私のアプリケーションで行数を取得したい。これは、他のアプリケーションで正常に動作しているが、私のアプリケーションのいずれかのために、それはエラーを与えている端末の行数を印刷しようとすると「xargs unterminated quote」エラーが発生する
find . "(" -name "*.m" -or -name "*.h" ")" -print | xargs wc -l
「終端されていない引用符をxargsの」:私はこのコードを使用しています。
私のアプリケーションで行数を取得したい。これは、他のアプリケーションで正常に動作しているが、私のアプリケーションのいずれかのために、それはエラーを与えている端末の行数を印刷しようとすると「xargs unterminated quote」エラーが発生する
find . "(" -name "*.m" -or -name "*.h" ")" -print | xargs wc -l
「終端されていない引用符をxargsの」:私はこのコードを使用しています。
ファイル名の1つに引用符がありますか?このような何かを試してみてください:
はfind . "(" -name "*.m" -or -name "*.h" ")" -print0 | xargs -0 wc -l
-print0
引数は、それが出て印刷し、それぞれの名前を終了するためにNULL文字を使用するfind
に指示します。 -0
引数は、入力トークンがNULLで終了することをxargs
に伝えます。これにより、引用符のように特別な扱いを受ける文字の問題を回避できます。
あなたがどこかにファイル名に単一引用符を持っているので、これは起こることができます...
すなわち - >'
問題のあるファイルを検索するには、ターミナルで以下のコマンドを実行します。
\find . | grep \'
を
この問題は、問題の原因となっているxargsセットアップのエイリアスがある場合にも発生します。これが正しいかどうかをテストするには、xargsの前に '\'を付けてxargsを実行します。
\find . | \xargs ....
「\」は単に
は、私はすべての.svnフォルダを削除しようとした下記の私のために働いているゲイリー – Lena
どうもありがとうございます「任意のエイリアスせずにコマンドを実行する」を意味します ./見つけます - 名前 ".svn" -print0 | xargs -0 rm -Rf –
いくつかの説明を歓迎します;) – AsTeR