考虑需要使用“diff”来比较具有许多注释行的两个文件,例如系统配置文件。 (例如,文件可以是 /etc/cups/cups-files.conf.pacnew 和 /etc/cups/cups-files.conf。)
我想忽略任何被注释掉的行的差异如下:
< #DocumentRoot /usr/share/cups/doc
---
> #DocumentRoot /usr/share/cups/doc-root
我只想查看活动(未注释)行的差异。
(我还想忽略空白差异。为了完整性,我提到这一点,以防上述解决方案干扰使用该-w
选项。)
答案1
您可以在比较文件之前过滤注释行:
diff -u -w <(grep -v '^[[:space:]]*#' /etc/cups/cups-files.conf.pacnew) <(grep -v '^[[:space:]]*#' /etc/cups/cups-files.conf)
这样diff
只会看到未注释的行,并且只会比较它们。