jq
yq
xmlstarlet
말 그대로 알만한 사람들은 아는 유명한 문자열 파서입니다. 저는 그동안 몰랐습니다.
모르는 사람들(저같은) json, xml, yml을 직접 파일 에디터를 열어서 수정합니다. 파일 에디터는 vscode, vi, nano, 메모장 등등 엄청나게 많겠죠.
하지만 jq의 경우 json path 만 알면 해당 요소를 읽거나 쓸 수 있습니다. 마치 AngleSharp이나 HtmlAgilityPack 처럼 HTML을 파싱해서 요소에 직접 접근해서 값을 읽고 쓰는 행위인 것입니다. 이름에서 보이겠지만 jq는 json을, yq는 yaml, yml을, xmlstarlet은 xml을 수정할 수 있습니다.
그럼 그냥 json 같은 경우는 C#으로 읽어서 Json.NET 같은 걸로 읽고 쓰면 되지 않나요? 라고 할 수 있지만 jq, yq, xmlstarlet은 독립된 도구로서, CommandLine 환경에서 사용할 수 있다는 점입니다. 접근성 자체가 다르죠. (Shell 프로그래밍 가능)
아시는 분들은 그래 이제 알았니? 하고 넘어가시면 되고, 모르셨던 분들은 저처럼 센세이션 하셨길 바라는 마음에 공유드립니다.