いくつかの調査を行った結果、文字列を「.」に分割できますが、置き換えたいのは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
ここでは点を置き換えようとしますが、これは正規表現の用語に必要な特殊文字です.
。したがって、リテラルを指定するためにバックスラッシュを使用します。sed
search
.
\.
.
パラメータに特殊文字sed
(ここではバックスラッシュ)を使用しているため、パラメータ\
全体を一重引用符で囲む必要があります''
。多くの人は、
スペースなどのシェル固有の文字を使用する問題を避けるために、常にここで引用符を使用しています。