在比较两个文件的时候,有一个文件存在一些空行,或者两个文件的换行符不一致,或者存在tab和空格显示的不同,在比较的时候希望忽略掉这些空白字符,只比较文本是否一致,并在diff返回显示的时候将返回内容并列显示,且只显示文件中不同的内容,不显示序号或者行号
grep -n ^$ file.txt
grep -n 显示符合条件的行号 ^ 表示行首 $ 表示行尾,^$中间没有别的字符,表示空行
sed -n '/^$/=' file.txt
sed -n '/[a-zA-Z0-9@#$%^&*]/!=' file.txt
awk '/^$/{print NR}' file.txt
linux下查找文件中空行的行号:
diff file1 file2
diff file1 file2 -w # 忽略全部的空格字符
diff file1 file2 -b # 不比较空格字符
diff file1 file2 -y --suppress-common-lines # 两个参数合用,将文件的不同之处以并列的形式显示
diff file1 file2 -yw --suppress-common-lines | head # 显示两个文件的不同(不比较空行)
-y --suppress-common-lines 并列显示符号表示
|:前后2个文件内容有不同
<:后面文件比前面文件少了1行内容
>:后面文件比前面文件多了1行内容
https://www.runoob.com/linux/linux-comm-diff.html
https://blog.csdn.net/hustyangju/article/details/46785533