zoomzoomzoom

解決方法の共有に主眼を置くブログ・他雑談

シェル芸 sed 使い方

シェル芸の練習をしています。

 

https://blog.ueda.asia/というところで、問題集的なカテゴリがありましたので、

そこで勉強させていただいております。

 

問題集→https://blog.ueda.asia/?page_id=684

 

で、第五回の4問目の解答で

 

curl http://www.yahoo.co.jp|sed 's@</[^/][^/]*>@&\n@g'

 

という部分があるんですが、

 

</[^/][^/]*> の表現の部分、それぞれの文字がどういう意味を持っているのかイマイチわかりません。わかる方いたら教えていただけると嬉しいです。

 

文字 : 自分の理解 

< : "<"という文字

/ (ひとつ目): ??????

[ (ひとつ目):

^ (ひとつ目): 次にくる文字を含む、という意味

/ (ふたつ目): ??????

] (ひとつ目):

[ (ふたつ目):

^(ひとつ目) : 次に来る文字を含む、という意味

/ (みっつ目):   ???????

] (ふたつ目): 

* :

> : ">"という文字

 

 

よろしくお願いします。

 

追記(20161214 19:39)

理解した。

勘違いしていたところ: ^ の使い方。

^は2通りの機能がある。

1.先頭から始まる

2.( [] の中で使って)〜を含まない

今回は2.の方の機能を使う。

 

文字 : 機能の理解 

< : "<"という文字

/ (ひとつ目): "/" という文字

ここまでで、 </ という文字列を表現する

 

[ (ひとつ目):   "[" という文字

^ (ひとつ目): 次にくる文字を含む、という意味

/ (ふたつ目): "/" という文字

] (ひとつ目): "]"という文字

ここまでで、 /を含まない何かの文字 という意味。

 

[(ふたつ目): "[" という文字

^(ひとつ目) : 次に来る文字を含む、という意味

/ (みっつ目):   "/" という文字

] (ふたつ目):  "]"という文字

ここまでで、 /を含まない何かの文字 という意味。

 

* : 繰り返し文字

> : ">"という文字

 

要約すると、

</ "/"以外なら何でもいい1 "/"以外なら何でもいい2の繰り返し >

ということを表したかった!!