diff
現在のファイルとターゲットの違いを見つけるために使用します。
私のコマンドは
diff -w --from-file /tmp/new_list.txt /tmp/protected_client.txt
出力は次のとおりです
8c8,9
> VM-E
私はこれを次のようにフィルタリングしました。
diff -w --from-file /tmp/new_list.txt /tmp/protected_client.txt | tail -n +2 | sed 's/> //g'
途方もない。ここでいくつかの違いがある場合は、次のように表示されます。
2d1
< esxi02
3a3
> psc-dr
2つの質問。この価値は何ですか?<
値が存在しますfrom-file
が、存在せず、to-file
その逆も同様です>
。
2d1
2番目の質問:このコードおよび3a3
/または何が起こっても、どのように削除しますか?
ベストアンサー1
このコードは行番号と見つかった違いの種類を提供します。
a
追加されたことを示します。c
変更d
削除済み
例:8c8,9
最初のファイル()の8行が--from-file
次に変更されたことを意味します。何この何2番目のファイルの8行から9行に保存されます。これは2d1
、最初のファイルの2行目が削除され、2番目のファイルの1行目の後に来ると予想されるなどの意味です。
私はあなたがこのコードを本当に削除したくないと思います。これは非常に便利ですが、コードを削除するか、別のものに変更する必要がある場合は、次の6つの出力形式を使用してください(ここではGNU diffを使用しているとします)。 ):
--old-line-format
--new-line-format
--old-group-format
--new-group-format
--changed-group-format
--unchanged-group-format
ここでは、(やや複雑な)構文に関するすべての詳細については説明しません。以下にそのinfo diff
説明を見つけることができます。if-then-else章。以下のコードは、あなたが要求するものを正確に提供します。つまり、コードがまったくなく、純粋な<
合計のみが提供されます>
。
diff --old-line-format=$'< %l\n' --new-line-format=$'> %l\n' \
--old-group-format=$'%<' --new-group-format=$'%>' \
--changed-group-format=$'%>' --unchanged-group-format='' file1 file2
必要に応じてエイリアスを作成できます。