这样做的目的是使用第5列作为参考来分割以下文件
336843.75 2395106.25 36289 38580 660
336843.75 2395118.75 36290 38580 660
336843.75 2395131.25 36291 38580 661
336843.75 2395143.75 36292 38580 662
336843.75 2395156.25 36293 38580 662
336843.75 2395168.75 36294 38580 663
336843.75 2495381.25 44311 38580 665
336843.75 2495393.75 44312 38580 760
336843.75 2495406.25 44313 38580 761
336843.75 2495418.75 44314 38580 762
336843.75 2495431.25 44315 38580 764
336843.75 2495443.75 44316 38580 765
336993.75 2394956.25 36277 38592 765
336993.75 2394968.75 36278 38592 766
336993.75 2394981.25 36279 38592 770
使用此代码,我已减去第5列中的行,以确定何时存在间隙> 50.第6栏的结果
awk '{$6=$5-prev5} {prev5=$5; print}' file
336843.75 2395106.25 36289 38580 660 660
336843.75 2395118.75 36290 38580 660 0
336843.75 2395131.25 36291 38580 661 1
336843.75 2395143.75 36292 38580 662 1
336843.75 2395156.25 36293 38580 662 0
336843.75 2395168.75 36294 38580 663 1
336843.75 2495381.25 44311 38580 665 2
336843.75 2495393.75 44312 38580 760 95
336843.75 2495406.25 44313 38580 761 1
336843.75 2495418.75 44314 38580 762 1
336843.75 2495431.25 44315 38580 764 2
336843.75 2495443.75 44316 38580 765 1
336993.75 2394956.25 36277 38592 765 0
336993.75 2394968.75 36278 38592 766 1
336993.75 2394981.25 36279 38592 770 4
以上结果我想将文件拆分为2部分,我之前提到应该考虑差距>第6列中的50用于拆分文件。
我可以使用选项
awk '{print> substr($5,1,1)}' file
但它总是不起作用。
输出所需的2个文件
文件1:
336843.75 2395106.25 36289 38580 660 660
336843.75 2395118.75 36290 38580 660 0
336843.75 2395131.25 36291 38580 661 1
336843.75 2395143.75 36292 38580 662 1
336843.75 2395156.25 36293 38580 662 0
336843.75 2395168.75 36294 38580 663 1
336843.75 2495381.25 44311 38580 665 2
file2的:
336843.75 2495393.75 44312 38580 760 95
336843.75 2495406.25 44313 38580 761 1
336843.75 2495418.75 44314 38580 762 1
336843.75 2495431.25 44315 38580 764 2
336843.75 2495443.75 44316 38580 765 1
336993.75 2394956.25 36277 38592 765 0
336993.75 2394968.75 36278 38592 766 1
336993.75 2394981.25 36279 38592 770 4
感谢您的帮助
答案 0 :(得分:2)
Awk
解决方案:
awk 'BEGIN{ c=1 }{ $6=$5-prev }{ prev=$5 }{ print > "file"(NR>1 && $6 > 50? ++c:c) }' file
结果:
$ head file[12]
==> file1 <==
336843.75 2395106.25 36289 38580 660 660
336843.75 2395118.75 36290 38580 660 0
336843.75 2395131.25 36291 38580 661 1
336843.75 2395143.75 36292 38580 662 1
336843.75 2395156.25 36293 38580 662 0
336843.75 2395168.75 36294 38580 663 1
336843.75 2495381.25 44311 38580 665 2
==> file2 <==
336843.75 2495393.75 44312 38580 760 95
336843.75 2495406.25 44313 38580 761 1
336843.75 2495418.75 44314 38580 762 1
336843.75 2495431.25 44315 38580 764 2
336843.75 2495443.75 44316 38580 765 1
336993.75 2394956.25 36277 38592 765 0
336993.75 2394968.75 36278 38592 766 1
336993.75 2394981.25 36279 38592 770 4