grep ソート列

grep ソート列

次の test.txt があります。出力を印刷するには、xvf-9c3683ff コマンドを使用します。ただし、xvf-bcb500dfを出力する必要があります。最後の日付に基づいています。

cat test.txt | awk '{print $2}' s/"//g' | grep xvf | ヘッド -1

テスト.txt

{
    "date": "2017-01-30T10:55:46.000Z", 
    "Id": "xvf-9c3683ff"
}, 
{
    "date": "2017-01-26T12:58:20.000Z", 
    "Id": "xvf-bcb500df"
}, 
{
    "date": "2017-01-31T18:33:20.000Z", 
    "Id": "xvf-ee07b28d"
}

出力は結果の下に印刷する必要があります。
xvf-bcb500df

ベストアンサー1

[これがJSON形式のファイルであると仮定すると(]開始と終了の両方がありません)、jq:

$ jq 'sort_by(.date)' data.json
[
  {
    "date": "2017-01-26T12:58:20.000Z",
    "Id": "xvf-bcb500df"
  },
  {
    "date": "2017-01-30T10:55:46.000Z",
    "Id": "xvf-9c3683ff"
  },
  {
    "date": "2017-01-31T18:33:20.000Z",
    "Id": "xvf-ee07b28d"
  }
]

最初のものを取得するにはId

$ jq 'sort_by(.date)|.[0].Id' data.json
"xvf-bcb500df"

引用符なしでコンテンツを取得するには:

$ jq -r 'sort_by(.date)|.[0].Id' data.json
xvf-bcb500df

作業用に作成されたパーサーは、構造化された標準形式のデータを解析するために使用する必要があります。以下を含む、シェルスクリプトやコマンドラインのいくつかの一般的な形式用に事前作成されたパーサーがあります。JSONXMLCSV他の人。

おすすめ記事