구현
[파싱(Parsing)] 파싱 구현하
2024. 12. 17. 23:47반응형
쉘
예제 1. 태그 <>가 있는 문자열 파싱하기
주어진 문자열:
<property color="blue" size="1000" age="35">
만들어야할 문자열:
blue,1000,35
더보기
방법 1. sed 사용
#!/bin/bash
# 입력 문자열
input='<property color="blue" size="1000" age="35">'
# sed를 사용해 파싱
output=$(echo "$input" | sed -E 's/.*color="([^"]*)".*size="([^"]*)".*age="([^"]*)".*/\1,\2,\3/')
# 결과 출력
echo "$output"
설명
- sed 명령어:
- s/.*color="([^"]*)".*size="([^"]*)".*age="([^"]*)".*/\1,\2,\3/
- -E: 확장 정규 표현식을 사용합니다.
- .* : 태그 내 불필요한 앞부분을 건너뜁니다.
- color="([^"]*)": color 속성 값(따옴표 안의 문자열)을 첫 번째 그룹으로 캡처합니다.
- size="([^"]*)": size 속성 값을 두 번째 그룹으로 캡처합니다.
- age="([^"]*)": age 속성 값을 세 번째 그룹으로 캡처합니다.
- \1,\2,\3: 캡처한 값을 쉼표로 구분하여 출력합니다.
- s/.*color="([^"]*)".*size="([^"]*)".*age="([^"]*)".*/\1,\2,\3/
방법 2. awk 사용
echo '<property color="blue" size="1000" age="35">' | awk -F '"' '{print $2","$4","$6}'
설명
- -F '"': 따옴표(")를 필드 구분자로 사용합니다.
- $2, $4, $6: 각 필드의 값을 쉼표로 구분해 출력합니다.
반응형