对于文件比较命令diff
,仅比较文本的文件比较需要哪些选项?
我的意思是我想忽略所有空格、制表符、换行符等。
我一直在尝试不同的选择,但未能达到预期的结果。
您可以预处理文件,然后比较流。例如用于tr
删除所有空格和换行符。
diff <( tr -d ' \n' <file1 ) <( tr -d ' \n' <file2)
Run Code Online (Sandbox Code Playgroud)
示例文件是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
Run Code Online (Sandbox Code Playgroud)
注意
these words
这在和之间没有区别th esew ord s
diff
的输出文件名是流名称而不是文件名查看man tr
特殊字符,例如制表符等(也许该[:space:]
集最符合您的需求)