sedを使用して参照f607b9ab-1452-4758-b047-6b620591211b
に抽出するにはどうすればよいですか?cmrepo-222-02
["+--------------------------------------+---------------+----------+------+-------------+", "| ID | Name | Status | Size | Attached to |", "+--------------------------------------+---------------+----------+------+-------------+", "| f607b9ab-1452-4758-b047-6b620591211b | cmrepo-222-02 | creating | 1 | |", "| 5e9b27fd-46b4-4950-9dc1-a838be21aff7 | cmrepo-222-01 | creating | 1 | |", "+--------------------------------------+---------------+----------+------+-------------+"]
答え1
これは、一部のSQLクエリの出力行を表すjson文字列の配列のように見えます(後処理ではない人が使用するためのものです)。したがって、jq
デコードを使用json
してawk
その形式のテーブルからデータを抽出できます。
<that-file jq -r '.[]' - |
awk -F '[[:space:]]*[|][[:space:]]*' '$3 == "cmrepo-222-02" {print $2}'
しかし、まず正しいSQLクエリを実行することをお勧めします。
答え2
使用sed
$ ref=cmrepo-222-02
$ sed "s/.* \([[:alnum:]-]\+\).*$ref.*/\1/" input_file
f607b9ab-1452-4758-b047-6b620591211b