現在の仕事では、Windowsコンピュータ上のファイルを使って作業する必要があることがよくあります。ほとんどの場合、これは大きな問題ではありませんが、にパイプを並べて接続すると、見えるだけでなくインデントもdiff
台無しになります。less
^M
、次のように:
<U+FEFF>using System;^M <U+FEFF>using System;^M
using System.Reflection;^M using System.Reflection;^M
using System.Runtime.Serializa^M using System.Runtime.Serializa^M
using System.Transactions;^M using System.Transactions;^M
(最初の行のUTF-8 BOMはその行にのみ影響するため、特に気にしません。)
私も作ることができることを知っています
diff -y <(tr -d '\015' <ファイル-a) <(tr -d '\015' <ファイル-b) |
しかし、これには多くのタイピングが必要であり、長いパスをfile-a
共有するときにbashの中括弧をうまく使用できません。file-b
そして
diff -y ファイル-{a,b} tr -d '\015' |
形式がめちゃくちゃなので目標を達成できませんでした。
しかし興味深いことに、以下は^M
すべてインデントの面で大丈夫です。
diff -y ファイル-{a,b} |ヘッダー
それで、私の質問は、上記の問題なく並列比較をどのようにlessにパイプすることができるかということです。 (私が知らないパラメータをdiffに追加するなど)
答え1
ファイルを変更せずに違いのみを印刷する場合、1つのオプションはオプションを含むすべてのスペースを無視して中-w
かっこを正常に使用できるようにすることです。
diff -wy file-{a,b} | less
もちろん、このアプローチはスペースに他の重要な変更がない場合にのみ機能します。
ファイルを回復することが目的であれば、dos2unix
ユーティリティを使用することをお勧めします。