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