そこにいるすべての「sed」医師に:
行内で一致した正規表現を抽出するために「sed」を取得するにはどうすればよいですか?
言い換えれば、正規表現に対応する文字列だけが、含まれる行の一致しないすべての文字を取り除いたものになります。
以下のような後方参照機能を使用してみました
regular expression to be isolated
gets `inserted`
here
|
v
sed -n 's/.*\( \).*/\1/p
これは次のようないくつかの式で機能します
sed -n 's/.*\(CONFIG_[a-zA-Z0-9_]*\).*/\1/p
'CONFIG_ ....'( '* .h'ファイルにあります)で始まるすべてのマクロ名をきれいに抽出し、それらをすべて1行ずつ出力します
CONFIG_AT91_GPIO
CONFIG_DRIVER_AT91EMAC
.
.
CONFIG_USB_ATMEL
CONFIG_USB_OHCI_NEW
.
e.t.c.
しかし、上記のようなもののために内訳
sed -n 's/.*\([0-9][0-9]*\).*/\1/p
これは常に次のような1桁を返します
7
9
.
.
6
などの連続した数字フィールドを抽出するのではなく。
8908078
89670890
.
.
.
23019
.
e.t.c.
PS:これが「sed」でどのように達成されるかについてのフィードバックに感謝します。「grep」と「awk」を使用してこれを行う方法を知ってい
ます単に見落とされた。