쉼표 없이 grep 반환 값을 만드는 방법

쉼표 없이 grep 반환 값을 만드는 방법

처리할 수 있도록 json 파일에서 값을 추출하고 싶습니다. 사용하려고 시도했지만 grep '"USDEUR" currs.json' | cut -d ':' -f 2반환되었으며 0.918695,json 파일은 다음과 같습니다.

{
"success":true,
"terms":"https:\/\/currencylayer.com\/terms",
"privacy":"https:\/\/currencylayer.com\/privacy",
"timestamp":1449232988,
"source":"USD",
"quotes":{
  "USDEUR":0.918695,
  "USDGBP":0.660851,
  "USDPLN":3.95815
}
}

그래서 USDEUR의 가치를 처리할 수 있도록 쉼표를 비활성화하는 방법을 알고 싶습니다.

답변1

JSON 파서를 사용하여 JSON을 구문 분석합니다.jq:

$ jq '.quotes.USDEUR' file.json 
0.918695

답변2

이를 수행하는 방법에는 여러 가지가 있습니다. 다음 방법 중 하나로 결과를 전송할 수 있습니다.

tr -d ','
cut -d',' -f1
sed -e 's/,//'

답변3

pure ( 옵션) 과 함께 grepPerl 호환 정규식을 사용하십시오 .-P

grep -Po 'USDEUR":\K.*(?=,)' file
  • \K그때까지 모든 것을 버릴 것이다:
  • (?=,)그 후 모든 것을 버릴 것입니다 ,(포함 ,)

답변4

다른 컷아웃을 추가하세요.

grep '"USDEUR" currs.json' | cut -d ':' -f 2 | cut -d',' -f 1

관련 정보