Linux下忽略前几行,比较a.txt与b.txt的后续内容
忽略文件前N行比较内容的方法
如果你需要跳过两个文件的前N行,只比较后续内容是否一致,可以用以下几种方法:
方法1:用tail+diff查看具体差异
假设要跳过前5行(从第6行开始比较),执行以下命令:
diff <(tail -n +6 a.txt) <(tail -n +6 b.txt)
tail -n +6表示从文件的第6行开始输出内容(即跳过前5行)<()是Shell的进程替换功能,将tail的输出作为diff的输入文件- 如果两个文件跳过前N行后内容完全一致,
diff不会输出任何内容;若有差异,会显示具体的行差异
方法2:用tail+cmp仅验证是否匹配
如果只需要确认后续内容是否完全相同,不需要查看具体差异,用cmp更高效:
cmp <(tail -n +6 a.txt) <(tail -n +6 b.txt)
cmp会直接返回退出码:返回0表示内容完全匹配,返回1表示存在差异- 适合在Shell脚本中做判断使用
注意事项
将命令中的+6替换为+N+1,其中N是你需要跳过的行数。比如要跳过前3行,就用+4。
内容的提问来源于stack exchange,提问作者Omar Khouly
相关产品推荐
相关产品推荐

