You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AIX系统中用cut无法从后往前截取调整字符串顺序,求解决方案

AIX下调整字符串顺序的替代方案

AIX系统的cut命令存在限制:它会自动按照字符在原字符串中的位置从小到大排序输出,不管你指定的截取顺序(比如你执行echo FT0215202301.xml | cut -b 7-10,5-6,3-4,实际会按3-4、5-6、7-10的顺序输出,得到02152023),因此无法直接用cut实现自定义顺序的字符串拼接。

可以用以下两种系统自带工具实现需求:

方法一:使用awk

利用awk的substr函数精准截取子串,再按目标顺序拼接:

echo FT0215202301.xml | awk '{print substr($0,7,4) substr($0,5,2) substr($0,3,2)}'
  • substr($0,7,4):从第7个字符开始截取4位(对应2023)
  • substr($0,5,2):从第5个字符开始截取2位(对应02)
  • substr($0,3,2):从第3个字符开始截取2位(对应15)
    拼接后直接得到期望结果20230215。

方法二:使用sed

通过正则捕获组提取目标片段,再重排输出:

# 适配支持扩展正则的AIX sed版本
echo FT0215202301.xml | sed -E 's/^..(..)(..)(....).*/\3\1\2/'

# 兼容所有AIX版本的基本正则写法
echo FT0215202301.xml | sed 's/^..\(..\)\(..\)\(....\).*/\3\1\2/'
  • 正则^..(..)(..)(....).*:匹配开头2个字符后,依次捕获3-4位、5-6位、7-10位的内容
  • 替换符\3\1\2:将捕获到的内容按「第三个组、第一个组、第二个组」的顺序拼接,输出目标结果。

内容的提问来源于stack exchange,提问作者Matias Araya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 23:42:33