【发布时间】:2013-05-08 20:01:05
【问题描述】:
我需要将标题(单行)添加到大量 (>10k) 文本文件中。假设 变量 $HEADER 确实包含适当的标题。命令
find -type f -name 'tdgen_2012_??_??_????.csv' | xargs sed -i "1s/^/$HEADER\n/"
效果很好。我面临的问题是一些数据文件(tdgen_2012_????????.csv) 是空的。 sed(1) 无法解决文件中不存在的行。我决定管理空文件 以不同的方式:
echo $HEADER | tee $(find -type f -name 'tdgen_2012_??_??_????.csv' -empty) > /dev/null
由于空文件的数量,上面的命令不起作用。 tee(1) 无法写入无限数量的文件。还有数量 可以超过命令行参数。
由于性能低,我不想使用 for 循环(tee(1) 可以一次写入多个文件)。
我的问题:
- 是否存在一种同时用于两种数据文件(空/非空)的解决方案?
- 如果不是:如何有效管理空文件?
【问题讨论】: