gpt4 book ai didi

regex - 与 sed 匹配后,我可以获得下一行的长度吗?

转载 作者:太空狗 更新时间:2023-10-29 11:43:26 24 4
gpt4 key购买 nike

我有一个序列文件,格式为一行信息后跟序列,例如:

someinformation length=50
JJJIJJJJJJJJJIJGIJJJJJJIJJIJJJJJIJJJJHHHHHFFFFFCCC
someotherinformation length=50
GEFE?BEDHCBBACEBHAFEBFEBFHFFDDDFD@@@
[...]

我想用下一行的实际长度(没有下一行字符)替换 length=50(可以是不同的数字)。所以像这样:

sed -i "s/length=[0-9]+/length=length_next_line/" infile

在sed中是否可以获取下一行的长度?


用 20 行的 input.txt 文件做了一个非常简单的时间测试(for i in $(seq 10000); do thing input.txt >/dev/null; done)

苏库的回答:

real    0m54.932s
user 0m4.678s
sys 0m35.969s

Ed Morton 的回答:

real    0m53.983s
user 0m3.789s
sys 0m33.574s

anubhava 回答:

real    0m55.565s
user 0m5.929s
sys 0m36.049s

NeronLeVelu 第一个答案和第二个答案:

real    0m54.688s
user 0m3.812s
sys 0m36.884s

real 0m55.066s
user 0m3.929s
sys 0m36.850s

最佳答案

不,sed 用于在单独的行上进行简单替换,仅此而已。任何更有趣的是 awk 的工作:

$ awk 'sub(/=.*/,"="){info=$0; next} {print info length() ORS $0}' file
someinformation length=50
JJJIJJJJJJJJJIJGIJJJJJJIJJIJJJJJIJJJJHHHHHFFFFFCCC
someotherinformation length=36
GEFE?BEDHCBBACEBHAFEBFEBFHFFDDDFD@@@

关于regex - 与 sed 匹配后,我可以获得下一行的长度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31813826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com