다음과 같은 텍스트가 필요합니다.
A234321=http://www.google..... a normal URL
URL만 추출하고 첫 번째 부분을 제거합니다. 할 수 있을 것 같은데 expr
올바른 방법을 찾을 수 없습니다.
내가 사용할 수 있는 전체 정규식은 다음과 같습니다.http:[a-zA-Z0-9/_]+
답변1
당신이 이것을 찾고 있는지 잘 모르겠습니다. 도움이 되는지 확인해 보세요.
expr 'A234321=http://www.google&x=y' : '^[^=]*=\(.*\)'
답변2
expr이 필요하지 않습니다. 쉘 구성을 사용하여 지정된 제거 패턴과 일치하는 가장 짧은 접두사 ${VAR#PATTERN}
로 확장하고 , 가장 긴 접두사를 제거하고, 접미사를 제거 할 수 있습니다.$VAR
${VAR##PATTERN}
${VAR%PATTERN}
${VAR%%PATTERN}
text='A234321=http://www.example.com/wibble'
protocol=${text%%://*}
url=${protocol##*[!a-z]}://${text#*://}
답변3
텍스트가 항상 "=" 문자로 구분되어 있다고 가정하면 cut
URL은 다음과 같습니다.
url=`echo $text | cut -f 2 -d"="`
기본적으로 여기서는 텍스트 필드를 잘라내고 =
두 번째 필드로 구분하여 추출합니다.