반응형
아래와 같은 결과값을 var1, var2 를 key 값으로 하는 json을 표출 하려한다.
test1 jq filter: var1 100, var2 200. this is test1
test2 jq filter: var1 300, var2 400. this is test2
최종 json 표출은 아래와 같다.
[
{
"var1": "100",
"var2": "200.",
"other": "this is test1"
},
{
"var1": "300",
"var2": "400.",
"other": "this is test2"
}
]
1. 특수기호 제거
",", ":", "." 같은 특수 기호를 제거한다.
편의상 a라는 파일에 넣고 작업한다.
cat a | sed 's/://g' | sed 's/,//g' | sed 's/\.//g'
결과
test1 jq filter var1 100 var2 200 this is test1
test2 jq filter var1 300 var2 400 this is test2
2. 다중공백 제거
다중공백을 하나의 공백으로 치환한다.
sed -e "s/\ \+/ /g"
cat a | sed 's/://g' | sed 's/,//g' | sed 's/\.//g' | sed -e "s/\ \+/ /g"
결과
test1 jq filter var1 100 var2 200 this is test1
test2 jq filter var1 300 var2 400 this is test2
3. split으로 줄바꿈으로 구분
jq -R -s 'split("\n")[:-1]'
cat a | sed 's/://g' | sed 's/,//g' | sed 's/\.//g' | sed -e "s/\ \+/ /g" | jq -R -s 'split("\n")[:-1]'
결과
[
"test1 jq filter var1 100 var2 200 this is test1",
"test2 jq filter var1 300 var2 400 this is test2"
]
4. split으로 공백으로 구분
jq -R -s 'split("\n")[:-1] | map(split(" "))'
cat a | sed 's/://g' | sed 's/,//g' | sed 's/\.//g' | sed -e "s/\ \+/ /g" | jq -R -s 'split("\n")[:-1] | map(split(" "))'
결과
[
[
"test1",
"jq",
"filter",
"var1",
"100",
"var2",
"200",
"this",
"is",
"test1"
],
[
"test2",
"jq",
"filter",
"var1",
"300",
"var2",
"400",
"this",
"is",
"test2"
]
]
5. var1, var2를 key로 value 설정
jq -R -s '[split("\n")[:-1] | map(split(" ")) | .[] | { "var1": .[4], "var2": .[6], "other": .[7:] | join(" ") }]'
cat a | sed 's/://g' | sed 's/,//g' | sed -e "s/\ \+/ /g" | jq -R -s '[split("\n")[:-1] | map(split(" ")) | .[] | { "var1": .[4], "var2": .[6], "other": .[7:] | join(" ") }]'
결과
[
{
"var1": "100",
"var2": "200.",
"other": "this is test1"
},
{
"var1": "300",
"var2": "400.",
"other": "this is test2"
}
]
반응형
'OS > Linux' 카테고리의 다른 글
[LetsEncrypt] certbot을 이용한 SSL 인증서 발급(standalone, txt dns 레코드(dns challenge)) (0) | 2024.02.01 |
---|---|
IOPS(Input/Output Operations Per Second) 계산 방법 (1) | 2024.01.26 |
Proxmox 환경 VM(CentOS7) 디스크 LVM 사이즈 증가 (0) | 2023.11.30 |
linux(CentOS7) python 개발 환경 vim 설정 (1) | 2023.10.25 |
[Linux] 디스크 파티션 크기 확장(standard) (0) | 2023.09.04 |