Linux diffコマンド、改行文字を削除しますか?

Linux diffコマンド、改行文字を削除しますか?

Linuxの実装はdiff -w廃止されましたか\n?これを確認するためにLinuxシステムにアクセスすることはできません。

ベストアンサー1

-w方法:

-w --ignore-all-space
    Ignore all white space.

現在、「空白」が実際には一般的に含まれているので、これは完全には明確ではありません\n。たとえば、\sPerl 準拠の正規表現や POSIX のクラスは[[:space:]]改行文字と一致します。

$ printf '\n' | grep -zqP '\s' && echo yes
yes
$ printf '\n' | grep -zq '[[:space:]]' && echo yes
yes

しかし、diff比較して仕事ワイヤー行は\n文字として定義されます(実際には文字なので、grep上記-zで使用する必要がありました)。したがって、他の行なので考慮することdiffはできません。したがって、いいえ、このオプションは改行を削除せず、空白行はファイルが一致しないことを意味します。\n\n-wdiff

$ printf 'foo\nbar\n' > file1
$ printf 'foo\n\nbar\n' > file2
$ diff -wq  file1 file2
Files file1 and file2 differ

diffただし、行数による変更を無視するオプションがあります。

-B --ignore-blank-lines
    Ignore changes whose lines are all blank.

$ diff -sB  file1 file2
Files file1 and file2 are identical

おすすめ記事