我有这种形式的文件:
2ThroughputRule.js:128 bw 3545891 3545891 3545891
ThroughputRule.js:128 bw 124776 1835334 1151111
ThroughputRule.js:128 bw 1959606 1876758 2435492
ThroughputRule.js:128 bw 3213333 1765905 2979981
2ThroughputRule.js:128 bw 1985927 2386289 2284143
我想要一种处理文件的方法,以便外壳程序脚本可以读取每行的第一个字符,如果找到一个数字,则从该数字旁边复制该行的次数,直到下面的EOL。
例如我有
2ThroughputRule.js:128 bw 3545891 3545891 3545891
结果是
2ThroughputRule.js:128 bw 3545891 3545891 3545891
ThroughputRule.js:128 bw 3545891 3545891 3545891
如果我有
4ThroughputRule.js:128 bw 3545891 3545891 3545891
ThroughputRule.js:128 bw 3545891 3545891 3545891
ThroughputRule.js:128 bw 3545891 3545891 3545891
ThroughputRule.js:128 bw 3545891 3545891 3545891
有可能这样做吗?
您可以尝试此程序。将其另存为pr.awk
。然后跑awk -f pr.awk test.txt
function force_num(x) {return x+0}
match($0, "^[0-9]+") {
n = substr($0, RSTART, RLENGTH)
n = force_num(n)
rst = substr($0, RSTART + RLENGTH)
for (i=1; i<=n; i++)
print rst
next
}
{
print
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句