我需要像这样的文本:
A234321=http://www.google..... a normal URL
只提取 URL,去掉第一部分。我想我可以expr
这样做,但我找不到正确的方法
我可以使用的整个正则表达式是http:[a-zA-Z0-9/_]+
答案1
我不确定你是否正在寻找这个。看看是否有帮助。
expr 'A234321=http://www.google&x=y' : '^[^=]*=\(.*\)'
答案2
你不需要 expr 。您可以使用 shell 构造${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"="`
基本上,我们在这里剪切文本字段,由=
第二个字段分隔并提取。