在比较两个文件的时候,有一个文件存在一些空行,或者两个文件的换行符不一致,或者存在tab和空格显示的不同,在比较的时候希望忽略掉这些空白字符,只比较文本是否一致,并在diff返回显示的时候将返回内容并列显示,且只显示文件中不同的内容,不显示序号或者行号

查看文本空白行的行号

1.grep
grep -n ^$ file.txt

grep -n 显示符合条件的行号 ^ 表示行首 $ 表示行尾,^$中间没有别的字符,表示空行

https://www.runoob.com/linux/linux-comm-grep.html grep

2.sed
sed -n '/^$/=' file.txt
sed -n '/[a-zA-Z0-9@#$%^&*]/!=' file.txt

https://www.runoob.com/linux/linux-comm-sed.html

3.awk
awk '/^$/{print NR}' file.txt

https://www.runoob.com/linux/linux-comm-awk.html

linux下查找文件中空行的行号:

https://www.cnblogs.com/stono/p/115780933.html

diff比较文本不同之处(不比较空格)

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

Logo

更多推荐