awk - 在总和之后将数据拆分为特定值
问题描述
如何在input.txt
大小总和之后拆分column 1
80000
输入.txt
11736 textDYN.txt
65736 textMV.txt
61812 textDYN_1.txt
11750 textGB.txt
$1 < 80000
total sum = 77472 under 80000
然后,它将输出为output_001.txt
11736 textDYN.txt
65736 textMV.txt
total sum = 73562 under 80000
然后,它将输出为output_002.txt
61812 textDYN_1.txt
11750 textGB.txt
解决方案
$ cat tst.awk
{
sub(/\r$/,"")
sum += $1
}
(NR == 1) || (sum > 80000) {
close(out)
out = sprintf("output_%03d.txt",++cnt)
sum = $1
}
{ print $0 " > " out }
$ awk -f tst.awk file
11736 textDYN.txt > output_001.txt
65736 textMV.txt > output_001.txt
61812 textDYN_1.txt > output_002.txt
11750 textGB.txt > output_002.txt
更改print $0 " > " out
为print > out
完成测试时。
推荐阅读
- python - 如何在电影评分推荐系统中为我的模型准确性应用归一化平均绝对值::
- angular - Why is the format 'HH:mm' not working in this DatePipe?
- c++ - 函数结束后指针会死吗?
- reactjs - 如果与 DefinePlugin 一起使用,将应用程序部署到 Heroku 不起作用
- ios - NSURLCache cachedResponseForRequest 被调用两次
- login - Keycloak - Multi/2FA Factor - OTP - QR Code - 自定义登录屏幕 - Rest API
- recursion - Trying to understand clojure Fibonacci recursion
- python - How to authenticate in MySQL RDS using IAM DB Authentication and Python
- eclipse - 在 Eclipse 中使用 jsp、java servlet 和 mysql(wamp 服务器)自动生成一个employeeID
- php - 这个 php 代码有什么问题没有插入数据库