合并指定类型文件并去除各文件前两行:tail命令的优化方案或替代方法
合并指定类型文件并去除各文件前两行:tail命令的优化方案或替代方法
嗨,你遇到的问题其实是tail命令处理多个文件时的默认行为导致的——当它同时处理多个文件时,会自动在每个文件的内容前加上文件名作为分隔,还会插入空行,这就是你看到那些路径的原因。下面给你两种实用的解决思路:
优化tail命令:抑制文件名输出
只需要给tail加上--quiet(简写-q)参数,就能关闭文件名的自动插入,把命令改成这样就行:
tail -n +3 -q path/to/files/foo_bar_* >> BigDataFile.dat
执行后,每个文件从第3行开始的内容会直接追加到目标文件里,不会再出现文件名和多余的空行啦。
替代方案:用awk实现更灵活的行过滤
如果你偏好类似cat的合并思路,awk可以完美结合“合并文件+跳过前两行”的需求,命令如下:
awk 'FNR>2' path/to/files/foo_bar_* >> BigDataFile.dat
这里的FNR代表当前处理的文件内的行号,当行号大于2时,awk就会打印该行内容。这个方法不仅能满足当前需求,后续如果需要对每行内容做其他处理(比如过滤、修改),也能很方便地扩展。
备注:内容来源于stack exchange,提问作者peter_wx
相关产品推荐
相关产品推荐

