ファイル比較コマンドの場合、テキストのみのdiff
ファイル比較に必要なオプションは何ですか?
私の言葉は、すべてのスペース、タブ、改行文字などを無視したいという意味です。
さまざまなオプションを試しましたが、目的の結果が得られませんでした。
ベストアンサー1
ファイルを前処理してからストリームを比較できます。たとえば、tr
すべてのスペースと改行を削除します。
diff <( tr -d ' \n' <file1 ) <( tr -d ' \n' <file2)
サンプルファイルはa
およびで、b
テキストは共有しますが、スペースと改行位置は共有しません。
cat a
1
2
3
cat b
1 2 3
diff -sq a b
Files a and b differ
diff -sq <( tr -d ' \n' <a ) <( tr -d ' \n' <b )
Files /dev/fd/63 and /dev/fd/62 are identical
気づく
these words
間に違いはありません。th esew ord s
- 削除したい文字には特別な注意を払う必要があります。
diff
出力ファイル名はファイル名ではなくストリーム名です。
man tr
タブなどの特殊文字を表示します。 (多分この[:space:]
セットはあなたの要求に最も適しているかもしれません)