gpt4 book ai didi

shell - 对数字范围使用 sed 命令

转载 作者:行者123 更新时间:2023-12-01 13:41:40 24 4
gpt4 key购买 nike

我有一个包含城市和数字的文件。这是一个csv文件

New York , 23456      
chicago, 123,456,789,889981(2-6)
phoenix 123,76(0-3)

文件中的范围编号我想用每个数字替换它。例如,我想将 889981(2-6) 更改为 8899812,8899813,8899814,8899815,8899816 并插入同一行。我能在 sed 中做到吗?它需要扫描整个文件并进行替换。

最佳答案

sed 算术不是很好;我想这不是不可能,但也不是很简单。我的建议是使用适当的脚本语言,例如 awk、perl 或 python(如果您不熟悉它们中的任何一个,也许是 Python;如果您想要尽可能小的内存占用,请使用 awk;如果您已经了解 Perl ,一定要使用 Perl)。

perl -pe 's/(\d+)\((\d+)-(\d+)\)$/ join (",", 
(join ("", $1, $2) .. join ("", $1, $3))) /ge' file

关于shell - 对数字范围使用 sed 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7253778/

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