バッシュを使って

バッシュを使って

いくつかの調査を行った結果、文字列を「.」に分割できますが、置き換えたいのは3番目の「.」で、バージョン番号は実際には可変であるため、置き換え/分割をどのように実行しますか?

version: 1.8.0.110

しかし、私が望むものは次のように出力されます。

version: 1.8.0-110

ベストアンサー1

たとえば、次のようになりますsed

$ echo 'version: 1.8.0.110' | sed 's/\./-/3'
version: 1.8.0-110

説明する:

sed s/search/replace/x文字列を検索して別の文字列に置き換えます。x交換するイベントを識別します。 3番目のイベントは次のとおりです。一般的に発生するすべての状況を指すためgに使用されます。x

ここでは点を置き換えようとしますが、これは正規表現の用語に必要な特殊文字です.。したがって、リテラルを指定するためにバックスラッシュを使用します。sedsearch.\..

パラメータに特殊文字sed(ここではバックスラッシュ)を使用しているため、パラメータ\全体を一重引用符で囲む必要があります''。多くの人は、 スペースなどのシェル固有の文字を使用する問題を避けるために、常にここで引用符を使用しています。

おすすめ記事