【发布时间】:2016-10-27 13:23:00
【问题描述】:
这是一个简单的问题,但给解决方法带来了太多麻烦。 提到的所有解决方案都适用于 ksh99。但不幸的是,我使用 ksh88,我无法从字符串中获取子字符串。
我正在尝试获取字符串的年份部分。但我收到一个错误。剪切语法似乎很好。也是对变量的赋值。
cut: The list arguments following the c option are not correct.
这是使用的语句。
typeset -i dt_year=`echo 201610118 | cut -c1-4`
【问题讨论】:
-
很难想象发布的代码会失败。
cut命令是否独立工作?看看你能不能制作一个MCVE (Minimal, Complete, and Verifiable Example)。 -
当您被 ksh88 困扰时,我猜您正在使用旧的 Unix 变体 HP 或 AIX,它们都以其古怪的实现而闻名。您检查
man cut是否看到c实际上意味着字符;-)?也许为您的操作系统添加标签。 (我确定您的意思是 ksh95。虽然新的 ksh 直到 2 年前才出现,但它们仍然被归类为 ksh95。最后,您是否在寻找/usr/xpg4/bin/ksh或其他目录?)祝你好运。 -
试试
echo 201610118 | cut -c1-4。如果可行,请尝试不使用typeset -i的命令。也可以试试typeset -i dt_year="2016"。结合这些测试来查明您的问题。 -
@shellter 你的意思是
ksh93,对吧? -
@AdrianFrühwirth:多啊!是的,ksh93。 (我不能责怪早起/迟到!)。祝大家好运。