解决了一例awk中substr处理汉字字符串的bug

本文分享了如何解决在使用awk时遇到的substr函数处理汉字字符串的bug,详细探讨了该问题的原因及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本来,awk中的substr在处理中文字符串是没有问题的,但是前几天却碰到一个诡异的现象:
————————————————————————————————
[lw]$cat awktest
Title: 123小苵大家
[lw]$cat awktest | awk -F" " '{print $2}'
123小苵大家
[lw]$cat awktest | awk -F" " '{print substr($2,1)}'
123小小|大家

————————————————————————————————
见鬼了不是?
最后采用其他方式解决了此问题:
————————————————————————————————
[lw]$export atstr=`cat awktest | awk -F" " '{print $2}'`
[lw]$echo ${atstr:0:10}
123小苵大家
[lw]$cat awktest | awk -F" " '{print $2}' | cut -c 1-
123小苵大家
[lw]$cat awktest | cut -c 8-
123小苵大家

————————————————————————————————

其实最不解的还是
————————————————————————————————
[lw]$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值