sed에서 정규식을 사용하여 파일에서 데이터 추출

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 |             |", "+--------------------------------------+---------------+----------+------+-------------+"]

답변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

관련 정보