Text-Processing
在 sed 中使用正則表達式從文件中提取數據
如何使用 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 | |", "+--------------------------------------+---------------+----------+------+-------------+"]
使用
sed
$ ref=cmrepo-222-02 $ sed "s/.* \([[:alnum:]-]\+\).*$ref.*/\1/" input_file f607b9ab-1452-4758-b047-6b620591211b
它看起來像一個 json 字元串數組,表示某些 SQL 查詢的輸出行(用於人類消費,而不是用於後處理)。因此,您可以使用
jq
解碼json
並awk
嘗試從該格式化表中提取數據。<that-file jq -r '.[]' - | awk -F '[[:space:]]*[|][[:space:]]*' '$3 == "cmrepo-222-02" {print $2}'
但最好的辦法是首先進行正確的 SQL 查詢。