那是因为你后面这个需求和原来的需求不是同一回事,需求变了脚本肯定要变:
cat t1.html | bb -i '(println (clojure.string/replace (apply str *input*) #"(\d+,)+(\d+)" (fn [s] (let [s (first s)] (apply str (reverse (map #(str %1 %2) (map #(apply str (reverse %)) (partition-all 4 (reverse (remove #(= \, %) s)))) " 万亿兆京"))))) ))' > t2.html
我只是觉得对于你的需求来说,sed有点难写,而脚本要好写得多,一旦再增加点需求比如把123005变成十二万三千零五来显示这种,脚本改一下比sed就更要方便得多。
sed和awk之前我也花过些时间去写,但后来发现这投资不值得,还不如写python、ruby、clojure这些更强悍点的高级脚本,虽然多敲了几个字,但语义更清晰。
【 在 poocp (慢速随机指标) 的大作中提到: 】
: 标 题: Re: 写了个将欧美3分割数字转为中国4分割数字的sed脚本
: 发信站: 水木社区 (Mon Feb 8 06:02:55 2021), 站内
:
: 你直接用个文件做输入试试,估计你的脚本还得改改,我是拿网页
:
https://www.worldometers.info/coronavirus/的数据试的,整个网页保存为txt。
:
: source digitCN.sh
: digitCN < in.txt > out.txt
:
: 【 在 No1 的大作中提到: 】
: : 比perl还迷幻,随便用个脚本不舒服百倍:
: : => (let [ss ["98,234,234,123"
: : "1,132,390,489,452"
: : ...................
: ※ 修改:·poocp 于 Feb 8 06:27:43 2021 修改本文·[FROM: 171.221.29.*]
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 171.221.29.*]
--
修改:poocp FROM 171.221.29.*
FROM 106.121.184.*