長いテキスト行を含む2つのテキストファイルを比較するためにこれを使用すると、diff -y
結果は各列が切り捨てられ、行全体を読み取ることができません。行全体を読むことができるように、テキストを改行(または折りたたみとも呼ばれる)したいと思います。
たとえば、各行に2つの単純なテキストファイルがあるとします。
cat tmp.txt tmp2.txt
The quick brown fox jumped over the lazy dog. This line is very long and will not show when I use a diff.
The quick brown fox did not jump over the lazy dog. This line is very long and will not show when I use a diff.
diff
私はそれを得た
diff -y tmp.txt tmp2.txt
The quick brown fox jumped over the lazy dog. This line is ve | The quick brown fox did not jump over the lazy dog. This line
これにより中央の線が切り取られます。
-W
より広くするオプションがあることはわかっていますが、線が画面の幅よりも長くて役に立ちません。 simpleを使用するとdiff
テキストが折り返されますがdiff -y
。
それでは、テキストの改行をどのように使用しますかdiff -y
?
役に立つ場合は、Macで端末を使用しています。
これは簡単なようですが、あちこちで検索しても解決策が見つかりません!
答え1
行番号情報が失われても大丈夫で視覚的な違いにのみ興味がある場合は、fold
ファイルを最初に比較してから比較できます。
diff -y <(fold -s -w72 file1) <(fold -s -w72 file2) -W 200
このコマンドでは、プロセス置換を使用して最初に各ファイルを72文字の行に縮小しますが、-s
オプションを使用すると空白文字でのみ行を置き換えます。
行が改行に折り返されると、diffコマンドは改行された出力で動作します。
編集:diffを折りたたみで指定された値より大きい値と比較するために-Wを指定すると、diffと折りたたみが合うのに十分なスペースがあることが確認されます。この場合、-W 200 が diff に提供されます。