別の文字列内の文字列を取得するには、シェルスクリプトで正規表現を記述して、変数文字列myString
が正規表現文字列に含まれるようにする必要があります。これどうやってするの?
質問する
6343 次
6 に答える
2
二重引用符内のテキストを抽出したい場合、および二重引用符のセットが 1 つだけであると仮定すると、それを行う 1 つの方法は次のとおりです。
[me@home]$ echo $A
to get "myString" in regular expression
[me@home]$ echo $A | sed -n 's/.*"\(.*\)".*/\1/p'
myString
もちろん、引用符のセットが 1 つしかない場合は、sed/regex なしでも実行できます。
[me@home]$ echo $A | cut -d'"' -f2
myString
于 2012-09-17T09:33:48.317 に答える
1
二重引用符のセットが 1 つしかないことがわかっている場合は、次のようにシェル パラメーター展開を使用できます。
zsh> s='to get "myString" in regular expression'
zsh> echo ${${s#*\"}%\"*}
mystring
bash はマルチレベル展開をサポートしていないため、展開を順番に適用する必要があります。
bash> s='to get "myString" in regular expression'
bash> s=${s#*\"}
bash> s=${s%\"*}
bash> echo $s
mystring
于 2012-09-17T10:42:19.123 に答える
0
>echo 'hi "there" ' | perl -pe 's/.*(["].*["])/\1/g'
"there"
于 2012-09-17T10:34:30.523 に答える
0
「awk」も使用できます。
echo 'this is string with "substring" here' | awk '/"substring"/ {print}'
# awk '/"substring"/ {print}' means to print string, which contains regexp "this"
于 2012-09-17T10:55:41.720 に答える
-1
grepは、シェルで正規表現を検索するための最も一般的なツールです。
于 2012-09-17T09:27:04.300 に答える