次の内容を含む `StandardDefaults.txt ファイルがあります。
[MetaInfo]
fileName="BUStandardDefaultsFile.dat"
schemaVersion="2"
schemaLocation="sftp:/var/app/napsgl/cgdata/GLFSUTN1/intfc/dsmtout/ISG/Schema/BUStandardDefaultsFileSchema_02.json"
generationTime="2023-06-13T10:19:13.060606"
process_time"2023-06-14T08:29:13.060606"
recordsCount=1041
generationTime
期待される出力値に関連する日付を抽出する必要があります。
2023-06-13
私はファイルからインポートを試しましたgrep
。generationTime
しかし、日付値を抽出するのに助けが必要です。日付値を文字列に保存したいです。その後、さらなる処理に使用されます。
ベストアンサー1
そしてawk
:
awk -F'["T]' '/^generationTime/ {print $3}' StandardDefaults.txt
2023-06-13
これは、またはフィールド区切り文字としてawk
使用し、次に始まる入力行に3番目のフィールドを印刷するように指示します。"
T
generationTime
なぜ3番目のフィールドですか?大文字のためT
(generationTime
前のすべての内容は$ 1です)、2番目のフィールド$ 2は"
そこから最初の文字までのすべての内容であり、3番目のフィールドである$ 3はそこから次のものまでですT
。
generation T ime= " 2023-06-13 T 10:19:13.060606 "
$1 FS $2 FS $3 FS $4 FS $5
FS はフィールド区切り文字を表します。最後のフィールド区切り文字の後に何もないので、$ 5は空です"
。NF
に重要かもしれませんNF
)。
awk(またはstdoutで印刷するすべてのプログラム)の出力を変数に保存するには、次のようにします。コマンドの置き換え、例えば:
$ myvar=$(awk -F'["T]' '/^generationTime/ {print $3}' StandardDefaults.txt)
$ echo $myvar
2023-06-13