2つのファイルの間の差のサマリーが必要です。期待される出力は、新規、削除、変更された行の数です。 diffはそのような出力を容易に提供しますか?そうでなければ、要約を得るのに役立つスクリプト/ユーティリティがあります。新しい、変更された、削除された行の概要を報告するdiffを取得する方法
答えて
diff -uを使用すると、+と-の前に行がある統一差分が生成されます。その後、あなたは+ ESとのカウントを取得するためにWC - それぞれ ESを - grepを介して出力が(のみ+かを取得する)ことをおパイプの場合。
私はあなたがdiffstatを探していると思います。 diffの出力をdiffstatに渡すだけで、あなたはこのようなものを得るべきです。 GitのまたはMercurialのを使用してそれらのために
include/net/bluetooth/l2cap.h | 6 ++++++
net/bluetooth/l2cap.c | 18 +++++++++---------
2 files changed, 15 insertions(+), 9 deletions(-)
ありがとうございます。 –
HomebrewをインストールしたMacの方のために。 'brew install diffstat'でインストールしてください。 –
、ものunstaged変更のように要約を参照する簡単な方法:ここで
git diff --stat
hg diff --stat
は、スクリプトがすべてと正しくフォーマットsuyashaでありますいくつかのメッセージ出力が追加されています。良い仕事、suyashaは答えとしてあなたの返信を掲示していたはずです。私はそれに投票したでしょう。 |
#!/bin/bash
# USAGE: diffstat.sh [file1] [file2]
if [ ! $2 ]
then
printf "\n USAGE: diffstat.sh [file1] [file2]\n\n"
exit
fi
diff -u -s "$1" "$2" > "/tmp/diff_tmp"
add_lines=`cat "/tmp/diff_tmp" | grep ^+ | wc -l`
del_lines=`cat "/tmp/diff_tmp" | grep ^- | wc -l`
# igonre diff header (those starting with @@)
at_lines=`cat "/tmp/diff_tmp" | grep ^@ | wc -l`
chg_lines=`cat "/tmp/diff_tmp" | wc -l`
chg_lines=`expr $chg_lines - $add_lines - $del_lines - $at_lines`
# subtract header lines from count (those starting with +++ & ---)
add_lines=`expr $add_lines - 1`
del_lines=`expr $del_lines - 1`
total_change=`expr $chg_lines + $add_lines + $del_lines`
rm /tmp/diff_tmp
printf "Total added lines: "
printf "%10s\n" "$add_lines"
printf "Total deleted lines:"
printf "%10s\n" "$del_lines"
printf "Modified lines: "
printf "%10s\n" "$chg_lines"
printf "Total changes: "
printf "%10s\n" "$total_change"
- 1. git diff、変更された文字だけを取得する
- 2. FirstOrDefaultの追加/更新/削除されたデータの取得方法データテーブルの行?
- 3. TreeSetでソートされた要素を削除して更新する方法は?
- 4. ウィンドウのサイズが変更されたときに要素を削除して取得する方法
- 5. gitで削除されたブランチを取得する方法
- 6. 削除された変更セットを復旧する方法
- 7. 削除された行のデータを更新する
- 8. 行が削除されたときにmysqlのインデックスを更新する方法
- 9. 削除された要素のIDを取得する方法 - jquery UI
- 10. SQL Serverトリガーで挿入、更新、削除された行をコピーする方法
- 11. ダイアグラムの変更後に更新されたモデルを取得する方法は?
- 12. .net dataset削除された子の行を取得する方法
- 13. 削除された行数を取得するには?
- 14. MYSQLデータベースから削除された行を取得する
- 15. GITの新しい/変更/削除されたファイルのGITリスト
- 16. 削除されたファイル/フォルダのsvn情報を取得
- 17. CNContactStoreDidChangeNotificationを使用して更新/追加/削除された連絡先を取得する方法
- 18. データベースをインポートする方法、変更された製品をアップデートする方法、削除された製品を削除する方法
- 19. Oozieのハイブアクションから更新された行数を取得する方法
- 20. カウント方法:削除された行を除いたDatatable.rows.count
- 21. データテーブルから削除された行を取り戻す方法
- 22. 最近変更されたファイルを取得する方法
- 23. datepickerで変更された日付を取得する方法
- 24. アイリスカラーピッカーから変更されたカラーコードを取得する方法
- 25. 更新された行数を取得するC#のObjectContext.ExecuteFunction
- 26. トリガーワークシート_マージされたセルのコンテンツを削除して変更する
- 27. Observable(rxjs)から変更された要素を取得する方法
- 28. Android:カスタマイズされたSimpleAdapterのアイテム削除時にリストを更新する方法
- 29. トランクで削除されたファイルの更新を無視する方法
- 30. TYPO3削除された要素を表示する方法
おかげで、ここでの差分-u -s "$ FILE1" "$ FILE2"> "$のdiff_file" add_lines = '猫 "$のdiff_file" 同じ ためのbashシェルスクリプトレットでありますgrep^+ | wc -l' del_lines = 'cat" $ diff_file "| grep^- | wc -l' #igonre diffヘッダー(@@で始まるもの) at_lines = 'cat" $ diff_file "| grep^@ | wc -l' chg_lines = 'cat" $ diff_file "|chg_lines = 'expr $ chg_lines - $ add_lines - $ del_lines - $ at_lines' #からヘッダ行を引く(+++&---で始まる) add_lines =' expr $ add_lines - 1' del_lines = 'expr $ del_lines - 1' total_change =' expr $ chg_lines + $ add_lines + $ del_lines' – suyasha
@suyasha:改行を使って答えを正しく投稿できますか?私はそれを実行することに興味があります。 –