首页
热点话题
全栈
开发工具
经典语录
前端技术
后端技术
智能体
搜索
登录
搜索
一笑痕
人生若只如初见,
是可喜亦或者是可悲?
累计撰写
259
篇文章
累计收到
7
条评论
首页
热点话题
全栈
开发工具
经典语录
前端技术
后端技术
智能体
包含标签 【文本处理】 的文章
2026-10-25
全局正则连续 test,小心 lastIndex 留在原处
带 g 标志的正则会让 test 按 lastIndex 继续查找,成功时推进索引,失败时归零;复用同一个正则校验独立字符串,结果可能随调用次数改变。
2026年-10月-25日
66 阅读
0 评论
前端技术
2026-10-20
sed 脚本搬到 Mac,第一处报错在 -i 后面
跨平台脚本里的 sed 搬到 macOS,-i 后面必须补一个备份参数,-r 与替换串里的转义也跟传闻不一样。八个步骤都在本机跑过,报错原文与落盘字节留在日志里。
2026年-10月-20日
73 阅读
0 评论
开发工具
2026-10-20
替换字符串里的 $& 不是字面量,会换成匹配到的原文
高亮函数里写 $& 能包住匹配到的文字,换成外部给的替换串就多出一份原文。$ 系列模式在 Node 26 上逐个测了一遍,越界组号的返回值跟直觉不一样。
2026年-10月-20日
79 阅读
0 评论
前端技术
2026-10-17
全局正则再测一次,结果可能变了
带 g 或 y 的正则会把 lastIndex 当作下一次匹配的起点。test 和 exec 都会推进它,匹配失败时还会重置为零。展示连续调用的输出,并给出显式重置与新建正则的安全写法。
2026年-10月-17日
71 阅读
0 评论
前端技术
2026-10-11
文件名带空格,xargs 把它拆成了两个
一个清理脚本在别的目录少删了几个文件,目录里多了带空格的名字。把 macOS 自带 xargs 的 man 页逐条对着实测看:默认分隔符是空格和换行,-0 要配 find -print0,-I 每行起一次命令,-r 在本机是什么都不做的兼容开关。
2026年-10月-11日
70 阅读
0 评论
开发工具
2026-10-7
中文名单排出来不对,多半是排序器没指定 locale
一批中文名,不传区域参数排出来是码位顺序,和拼音无关;换成 zh 规则,顺序完全是另一个样。5 万个名字排一遍,按元素新建排序器要 1113 毫秒,复用一个 18 毫秒。附六种比较器的实测顺序与两张耗时数字。
2026年-10月-7日
124 阅读
0 评论
前端技术
2026-9-30
一个字母大写之后变成两个,长度这一栏就不能信了
同一个字符转成大写,长度可能从 1 变成 2;同一个「忽略大小写」判断,转大写和转小写会给出相反的答案。本机跑了一组样本,附上每个串转换前后的码点与长度。
2026年-9月-30日
103 阅读
0 评论
前端技术
2026-9-28
数行数别只看 wc -l,末尾缺一个换行符就少一行
一个三行的文件,wc -l 报 2;另一个三行的文件,同一个命令报 3。差的不是内容,是最后那个字节是不是换行符。wc -l、grep -c、awk 的 NR、wc -m 在几个小文件上的读数全跑了一遍,哪种数法要哪个数字也就清楚了。
2026年-9月-28日
117 阅读
0 评论
开发工具
2026-9-28
省略号一直不出现,卡在中间那层的 min-width
长标题要打省略号,white-space、overflow、text-overflow 三行都写齐了,文字还是把整行顶出去,右边的按钮被挤到看不见。同一段结构放进 Chromium 量了四遍,卡住的不是那三行,而是中间那层 flex 项的 min-width 默认值。
2026年-9月-28日
106 阅读
0 评论
前端技术
2026-9-27
共享一个 /g 正则,20 条记录只测出 10 条
一批记录逐个校验编号,20 条里每条都带一个四位数,用共享的 /g 正则跑完只过了 10 条,漏掉的位置还是隔一条来一次。问题不在数据,在正则对象身上的 lastIndex:命中之后它会被推到匹配末尾,下一条记录从那个偏移往下找。几种改法的差别一并跑了对照。
2026年-9月-27日
99 阅读
0 评论
前端技术
2026-9-23
sort -k2 和 -k2,2 排出两种顺序,差别在并列之后
同一份订单导出,sort -k2 与 sort -k2,2 给出两种行序,四条记录里只有两条换了位置。分歧全部发生在第二列取值相同的行上:-k2 的键延伸到行尾,会继续拿后面的列比;-k2,2 到此为止,剩下的顺序交给整行兜底比较。
2026年-9月-23日
107 阅读
0 评论
开发工具
2026-9-22
加一个 LC_ALL=C,百万行排序从 1.45 秒到 0.19 秒
POSIX 定义里的 locale 决定的不只是界面语言,还有排序键、字符类与大小写折叠。同一批文件在 en_US.UTF-8 与 C 两个 locale 下排出来顺序不同,一百万个随机串的耗时差七倍;中文名字在 en_US.UTF-8 下甚至等于没排。
2026年-9月-22日
129 阅读
0 评论
开发工具
2026-9-21
别把 sed -i 的后缀省掉,文件名会被当脚本读
跨平台脚本里的 sed -i 在 macOS 上直接报错退出,文件没改动。从报错原文、man 页的 SYNOPSIS 到可移植的封装函数,四步实测都在本机跑过,GNU 侧的差异标注了未实测。
2026年-9月-21日
123 阅读
0 评论
开发工具
2026-9-21
$1 没分组就原样留在结果里,replace 一声不响
替换串里的 $&、$1、$ 都会被引擎解释,第一个参数给普通字符串也一样。五种写错的写法逐个过实测输出,末尾给函数式替换这条稳妥路线。
2026年-9月-21日
126 阅读
0 评论
前端技术
2026-9-20
怪文件名面前,只有两种批量写法一个不漏
造 11 个名字里带空格、引号、反斜杠、通配符、制表符和换行的文件,用五种常见写法去批量处理,只有 find -print0 配 xargs -0 和 find -exec 加号这两种一个不漏,管道接 xargs 那种遇到一个不配对的引号会整批放弃。
2026年-9月-20日
115 阅读
0 评论
开发工具
2026-9-19
提字段最快的写法是 indexOf 手工切,不是正则
同一份 5 万行日志提取 level 和耗时字段,正则逐行 exec 4.1ms,indexOf 手工切 3.1ms,split 空格 5.3ms 还切错了。位运算计数和普通布尔计数打成平手,全文围着这一张数据表展开。
2026年-9月-19日
144 阅读
0 评论
全栈
2026-9-18
bash 的 # 和 % 删东西,贪婪与否看几个字符就够了
${v#-} 和 ${v##-} 差在哪、替换为什么会把相邻斜杠折叠、什么时候该用 dirname 而不是参数展开,全按问答排开。所有输出来自 bash 实跑,脚本在 tools/verify-param-expansion.sh。
2026年-9月-18日
114 阅读
0 评论
开发工具
2026-9-17
jq 里用 // 兜空值,false 会被吃掉
语法没错、退出码正常、结果却不对的 jq 写法最容易留在脚本里。五个反例都在本机 jq-1.7.1 上跑过:空值兜底会吃掉 false、--arg 传进来的永远是字符串、大整数参与运算才掉精度、. 遇 null 直接中断、-e 的退出码会静默打断 shell 脚本。
2026年-9月-17日
123 阅读
0 评论
开发工具
2026-9-15
rg 搜不到不是文件的问题,先问是哪条规则挡的
同一棵目录,rg 只看到 3 个文件,grep -r 看到 7 个。差的是哪一层规则、每个开关各自放行什么,以及 .gitignore 在没有 git 仓库的目录里为什么形同虚设。
2026年-9月-15日
133 阅读
0 评论
开发工具