git stripspace
すべてのビルド(または事前コミットまたは手動)ですべてのソースコードファイルを実行して不要なスペースを削除し、標準的な方法でコードをフォーマットしたいと思います。
だから私は次のようなことをしたい
git stripspace < project/code.m > project/code.m
find -exec
だから私はorが利用可能でなければならないと思いましたが、 'git Stripspace'が好きではないようxargs
ですfind
(おそらく<または>の間のスペースのためです)。そして、同じファイル名、同じパラメータを渡す方法がわかりません。連続して2回正しくリダイレクト(<>)します。
答え1
ファイルを読み取る前にファイルが破損しています。一時ファイルまたはsponge
次のユーティリティを使用する必要があります。その他のユーティリティ。
この場合、またはは使用できませんfind -exec
。xargs
コマンドとファイル名を含むシェルに引数を渡す必要があります。ファイル名トークン(ファイル名に置き換えられます)が別の引数になると予想しますxargs
。find
代わりにループを使用できます。
一時ファイルの使用:
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
%
すべての行を選択!
コマンドの実行x
保存して閉じる