如果我有一個shell變量的文字,說$a
:使用Linux shell腳本的字符串在字符串中的位置?
a="The cat sat on the mat"
我如何可以搜索「貓」和使用Linux shell腳本返回4,或者-1,如果沒有發現?
如果我有一個shell變量的文字,說$a
:使用Linux shell腳本的字符串在字符串中的位置?
a="The cat sat on the mat"
我如何可以搜索「貓」和使用Linux shell腳本返回4,或者-1,如果沒有發現?
我以前awk這個
a="The cat sat on the mat"
test="cat"
awk -v a="$a" -v b="$test" 'BEGIN{print index(a,b)}'
您可以使用grep來獲得字節偏移的字符串相匹配的部分組成:
echo $str | grep -b -o str
按照您的例子:
[[email protected] ~]$ echo "The cat sat on the mat" | grep -b -o cat
4:cat
你可以管t帽子的awk如果你只是想在第一部分
echo $str | grep -b -o str | awk 'BEGIN {FS=":"}{print $1}'
使用bash
a="The cat sat on the mat"
b=cat
strindex() {
x="${1%%$2*}"
[[ "$x" = "$1" ]] && echo -1 || echo "${#x}"
}
strindex "$a" "$b" # prints 4
strindex "$a" foo # prints -1
的[字符串在bash含有]
可能重複(http://stackoverflow.com/questions/229551/string-contains在這個問題 – 2011-02-17 16:39:56
@丹尼爾這個問題也要求索引的子串 – 2011-02-17 16:41:58