子串命令在solaris kshell中不起作用

时间:2015-08-31 03:16:31

标签: unix awk solaris substr

我正在尝试使用以下命令从字符串中提取子字符串:

propertyPath=$(echo $path|awk '{print substr($0,3,$index)}')

但是,该命令不会获取$index变量的值,因此不会返回有效的子字符串。

3 个答案:

答案 0 :(得分:2)

这样可行:

propertyPath=$(echo $path|awk '{print substr($0,3,'$index')}')

propertyPath=$(echo $path|awk -v index=$index '{print substr($0,3,index)}')

答案 1 :(得分:1)

propertyPath = $(echo $ path | awk“{print substr(\ $ 0,1,$ index)}”)

答案 2 :(得分:0)

单引号告诉shell不要扩展值,因此你必须在awk命令周围使用双引号。但是,当你这样做时,你必须为你不想提前扩展的变量转义$。