sedコマンドで「/」の使用を理解する必要があります。

sedコマンドで「/」の使用を理解する必要があります。

sedコマンドについて知りたい

たとえば、次のコマンドがあります。

rtNum=`pwd | sed -e 's/^.*bbsp.\/rt//' -e 's/\/.*$//'`

そして

rtRun=`pwd | sed -e 's/^.*bbsp.\/rt.*\///'`

ここで pwd は次のようになります。/tfsrun/bbsp2/rt3/run 生成される出力は次のとおりです。

echo $rtNum 
3

そして

echo $rtRun 
run

-e上記のsedコマンド、特に上記のsedコマンドでは、/、//および///の使い方と使い方を理解したいと思います。

ベストアンサー1

マニュアルに記載されているように、この-eオプションはスクリプトが続くことを示します。スクリプトは正規表現を使用して、一致するコンテンツを空の文字列に置き換えます。

正規表現を理解するには、次を読むのに十分な時間を費やすことをお勧めします。https://www.tutorialspoint.com/unix/unix-regular-expressions.htm

あなたの質問に: \/スラッシュはエスケープされていますか?これは区切り文字として扱われないことを意味します。 /一致文字列とターゲット文字列を区切る区切り文字です。

たとえば、's/matchingstring/targetstring/'s 呼び出しは一致する文字列の最初の項目をターゲット文字列に置き換えます。

あなたの場合:

  • '//'区切り文字の間に何もないため、ターゲット文字列が空であることを示します。
  • '///'実際にそうです。'\///'これは、一致文字列がスラッシュで終わり、ターゲット文字列が空であることを意味します。

おすすめ記事