2016-08-19 5 views
0

私はsed情報を読みました。 「3.3正規表現構文の概要」を参照してください。
説明があります:sed正規表現で digitを使用する方法

\digit 
    Matches the digit-th \(...\) parenthesized subexpression in the regular expression. 
    This is called a back reference. Subexpressions are implicitly numbered by 
    counting occurrences of \(left-to-right. 

私はそれが何を意味するのか分かりません。誰が私に例を挙げることができますか?

+0

も参照:[キャプチャグループ](http://stackoverflow.com/documentation/regex/660/capture-groups#t=201608190817276898192) – Sundeep

答えて

2

確かに!グラフィカル

$ echo "23 45" | sed -r 's/^([0-9]*)/---\1---/' 
---23--- 45 

:ご覧のとおり

sed -r 's/^([0-9]*)/---\1---/' 
#   ^^^^^^^^ ^^ 
#   capture -----| 
#     print back 

は、フォームs/search/replace上のsedの式では、あなたが「キャプチャ」、その後検索ブロック内のパターンとはに戻ってそれを印刷することができます\1\2、...を使用してブロックを置き換えます。番号は連続しており、キャプチャされた第1、第2、...グループに対応します。

$ echo "23 45" | sed -r 's/^([0-9]*) (.)/YEAH \2---\1---/' 
YEAH 4---23---5 
関連する問題