Bashスクリプトからこの部分文字列を取得するには?

Bashスクリプトからこの部分文字列を取得するには?

私はbashスクリプトを作業しています。

文字列を含むvarがあります。以下は文字列です。

tSA_15_20161014_11-12-50

デフォルトでは、フォーマットはtSA_(id)_(year)(month)(day)_(hour)-(min)-(seg)

重要な情報:

  • IDは0から999までの数字です。
  • 年の形式は次のとおりです。イヤ
  • 月形式mm
  • 日本語形式DD
  • 時間形式24時間

私が得たい文字列は次のとおりです。

20161014111250

これはyyyymmddHHMMSS

英語は私の母国語ではないので理解できない部分があれば教えてください。ありがとうございます。

ベストアンサー1

パラメータを使用した拡張bash

$ var='tSA_15_20161014_11-12-50'

$ var="${var#*_}"  ## Extracts the portion after first `_` i.e. 
                      new `var` will be `15_20161014_11-12-50`

$ var="${var#*_}"  ## again gets the portion after first `_`, so in this case
                      after operation `var` will contain `20161014_11-12-50`

$ echo "${var//[-_]/}"  ## Replaces all `-` and `_` from `$var` with null
20161014111250

おすすめ記事