1

別の文字列内の文字列を取得するには、シェルスクリプトで正規表現を記述して、変数文字列myStringが正規表現文字列に含まれるようにする必要があります。これどうやってするの?

4

6 に答える 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 に答える