, $a
말 :Linux 쉘 스크립트를 사용하여 문자열 내의 문자열 위치를 지정 하시겠습니까? 내가 쉘 변수의 텍스트가있는 경우
a="The cat sat on the mat"
?
, $a
말 :Linux 쉘 스크립트를 사용하여 문자열 내의 문자열 위치를 지정 하시겠습니까? 내가 쉘 변수의 텍스트가있는 경우
a="The cat sat on the mat"
?
나는에 대한 awk 사용이
a="The cat sat on the mat"
test="cat"
awk -v a="$a" -v b="$test" 'BEGIN{print index(a,b)}'
: 귀하의 예를 당으로
echo $str | grep -b -o str
:
를[[email protected] ~]$ echo "The cat sat on the mat" | grep -b -o cat
4:cat
당신은 단지 첫 번째 부분을 원하는 경우 모자 awk가에 떠들썩한 파티와
echo $str | grep -b -o str | awk 'BEGIN {FS=":"}{print $1}'
'cut -d : -f1'은 awk를 통해 파이핑하는 것보다 약간 가볍습니다 –
echo "고양이가 매트에 앉았습니다"| grep -b -o mat 이 작동하지 않습니다. – Zubair
@Zubair : define "does not work"- 내 컴퓨터에서 출력이 올바르다. – Cercerilla
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는 포함]의
+1 대쉬, 애쉬, ksh, pdksh, zsh에서도 작동합니다. 대쉬와 재는'[ "$ x"= "$ 1"]'을 원하고 pdksh는'x = $ 2; x = "$ {1 %% $ x *}"'그러나. –
redhat bash 2.0에서 작동하지 않습니다. – Zubair
@Zubair, bash 2.0은 10 세이고 2 가지 주요 릴리스가 있습니다 (http://ftp.gnu.org/gnu/bash/). 그것을 업데이트 할 수 있습니까? –
가능한 중복 (http://stackoverflow.com/questions/229551/string-contains -in-bash) –
@Daniel이 질문은 부분 문자열의 색인도 묻습니다. –