0

写真 (または例) は何千もの言葉よりも価値があるため、例を使用します。

RewriteRule ^/products/([0-9]+)$ /content.php?id=$1

この RewriteRule の例では、単純な正規表現を使用しています。$1 は ([0-9]+) によってキャプチャされたものへの参照であるため、一致が存在する場合は何らかの数値への参照です。grepでそのようなことをすることは可能ですか?

たとえば、一部の xml ドキュメントに次のものが含まれているとします。

<someTag>someValue</someTag>

someValueだけを抽出したいのですが、以下のようにsecond_bash_scriptに入力します。

first_bash_script | grep "<someTag>\([[:digit::]]\)\+</someTag>" | second_bash_script

someValueです。grep を使用してsomeValueのみを抽出することは可能ですか?

手がかりをありがとう!

4

1 に答える 1

1

それらは2つの別々の質問ですよね?

最初のものへの答えは次のようになります: use sedgrep置換を行いません。

sed 's_^/products/\([0-9]\+\)_/content.php?id=\1_g'

grep2 番目のことは、Perl 正規表現を使用して実行できます。

$ echo '<someTag>42</someTag>' | grep -oP '(?<=<someTag>)\d+(?=</someTag>)'
42
于 2012-06-04T15:18:29.553 に答える