假设有三个文件1 2 3
三个文件每几分钟增加一些内容(也就是写入一些字符),同时三个文件全部放到文件4中
现在方法是直接cat > 4 方式,缺点是每次4的内容都要重新写 效率太低
现在想变成 1 2 3 只把更新的内容写入4 有什么办法或者命令么?
shell最好,谢谢。
1
Andiry 2015-05-21 18:30:25 +08:00 via Android
写123的时候同时append 4不就行了?
|
2
fxxkgw OP 例子中的1 2 3 文件是从远程服务器通过rsync方式保存到本机的,所以无法在写1 2 3的时候顺道写一份都4
|
3
lululau 2015-05-21 18:43:31 +08:00
stat + dd
|
4
clino 2015-05-21 18:44:24 +08:00 via Android
tail -f加管道说不定可以
|
5
weyou 2015-05-21 18:45:59 +08:00
写个脚本,监视文件123文件,如果任何文件大小有改动,读取增加的行到文件4,并记录下当前行数,以待下次读取。
|
6
lululau 2015-05-21 21:01:15 +08:00 1
dd if=new_1 bs=1 iseek=$(stat -c%s old_1) >> 4
dd if=new_2 bs=1 iseek=$(stat -c%s old_2) >> 4 dd if=new_3 bs=1 iseek=$(stat -c%s old_3) >> 4 手边没有 Linux,记不准 GNU stat 的用法 |