xargsと<と>を同じファイルに追加する

xargsと<と>を同じファイルに追加する

git stripspaceすべてのビルド(または事前コミットまたは手動)ですべてのソースコードファイルを実行して不要なスペースを削除し、標準的な方法でコードをフォーマットしたいと思います。

だから私は次のようなことをしたい

git stripspace < project/code.m > project/code.m

find -execだから私はorが利用可能でなければならないと思いましたが、 'git Stripspace'が好きではないようxargsですfind(おそらく<または>の間のスペースのためです)。そして、同じファイル名、同じパラメータを渡す方法がわかりません。連続して2回正しくリダイレ​​クト(<>)します。

答え1

ファイルを読み取る前にファイルが破損しています。一時ファイルまたはsponge次のユーティリティを使用する必要があります。その他のユーティリティ

この場合、またはは使用できませんfind -execxargsコマンドとファイル名を含むシェルに引数を渡す必要があります。ファイル名トークン(ファイル名に置き換えられます)が別の引数になると予想しますxargsfind代わりにループを使用できます。

一時ファイルの使用:

find | while read file ; do
    git stripspace < "$file" > tempfile
    mv -f tempfile "$file"
done

そしてsponge

find | while read file ; do
    git stripspace < "$file" | sponge "$file"
done

答え2

ExモードでVimを使用できます。

ex -sc '%!git stripspace' -cx project/code.m
  1. %すべての行を選択

  2. !コマンドの実行

  3. x保存して閉じる

関連情報