如题所述
awk接支持substr函数
VFP字符函数的一种。表示的是字符型函数。格式是:SUBSTR(<字符表达式>、<数值表达式1>[,<数值表达式2>]
语法格式一:
SUBSTR(cExpression,nStartPosition [,nCharactersReturned])
其中,cExpression指定要从其中返回字符串的字符表达式或备注字段;nStartPosition用于指定返回的字符串在字符表达式或备注字段中的位置,nCharactersReturned用于指定返回的字符数目,缺省时返回字符表达式的值结束前的全部字符。
举例
STORE'abcdefghijklm' To mystring
?SUBSTR(mystring ,1,5) 显示 "abcde"
?SUBSTR(mystring ,6) 显示 "fghijklm"
?SUBSTR(mystring,-2)显示“lm”
?SUBSTR(mystrng,-4)显示“jklm”、
语法格式二:
SUBSTR(char A,char B,int C, int D)
这个函数主要用于字符串的运算,参数A是字符数组或是指向字符串的指针,用于接收字符串,参数B一般也为字符数组或指向字符串的指针,表示要截取字符串的地方,参数C表示从B中截取字符串的起始位置,参数D表示要截取字符串的长度,缺省时返回字符表达式的值结束前B的全部字符。
上述表达式功能可描述为:从字符串B的第C个字符处开始,截取长度为D的一串字符串,放入字符串数组A中,返回截取的字符串。
举例: ch X S[]="abcdefgh" 调用substr(X,S,4,2)后,得到的结果是:"ef"
VFP字符函数的一种。表示的是字符型函数。格式是:SUBSTR(<字符表达式>、<数值表达式1>[,<数值表达式2>]
语法格式一:
SUBSTR(cExpression,nStartPosition [,nCharactersReturned])
其中,cExpression指定要从其中返回字符串的字符表达式或备注字段;nStartPosition用于指定返回的字符串在字符表达式或备注字段中的位置,nCharactersReturned用于指定返回的字符数目,缺省时返回字符表达式的值结束前的全部字符。
举例
STORE'abcdefghijklm' To mystring
?SUBSTR(mystring ,1,5) 显示 "abcde"
?SUBSTR(mystring ,6) 显示 "fghijklm"
?SUBSTR(mystring,-2)显示“lm”
?SUBSTR(mystrng,-4)显示“jklm”、
语法格式二:
SUBSTR(char A,char B,int C, int D)
这个函数主要用于字符串的运算,参数A是字符数组或是指向字符串的指针,用于接收字符串,参数B一般也为字符数组或指向字符串的指针,表示要截取字符串的地方,参数C表示从B中截取字符串的起始位置,参数D表示要截取字符串的长度,缺省时返回字符表达式的值结束前B的全部字符。
上述表达式功能可描述为:从字符串B的第C个字符处开始,截取长度为D的一串字符串,放入字符串数组A中,返回截取的字符串。
举例: ch X S[]="abcdefgh" 调用substr(X,S,4,2)后,得到的结果是:"ef"
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-04-16
shell中有如下几种方法可以实现substr的功能。
方法一:
expr <string_variable> start_pos length
方法二:
echo ${<string_variable>:start_pos[:length]}
方法三:
awk中直接支持 substr 。
echo "" | awk '{substr('<string_variable>',start_pos,length)}'
例如:
str="abcd"
方法一:
$ expr $str 2 3
bcd
方法二:
$ echo ${x:2}
bcd
$ echo ${x:2:3}
bcd
方法三:
$ echo "" | awk '{substr('$x',2,3)}'
bcd追问
方法一:
expr <string_variable> start_pos length
方法二:
echo ${<string_variable>:start_pos[:length]}
方法三:
awk中直接支持 substr 。
echo "" | awk '{substr('<string_variable>',start_pos,length)}'
例如:
str="abcd"
方法一:
$ expr $str 2 3
bcd
方法二:
$ echo ${x:2}
bcd
$ echo ${x:2:3}
bcd
方法三:
$ echo "" | awk '{substr('$x',2,3)}'
bcd追问
方法1和2貌似不行哦 方法3 我试过了是可行的
$ str="abcd";echo $str|awk '{print substr($0,2,3)}'
bcd