Jq: Prop의 키와 값을 선택합니다.

Jq: Prop의 키와 값을 선택합니다.

다음 구조의 json 번역 파일이 있습니다.

{
  "STRING_ID_1": {
    "en": "Some englisch text.",
    "de": "Some german text."
  },
  "STRING_ID_2": {
    "en": "Some other englisch text.",
    "de": "Some other german text."
  },
  ...
}

이를 입력으로 사용하여 "en.json"과 "de.json"이라는 두 개의 파일을 생성해야 합니다. 형식은 다음과 같아야 합니다.

{
  "STRING_ID_1": "Some englisch text.",
  ...
}

그리고

{
  "STRING_ID_1": "Some german text.",
  ...
}

제 생각에는 이것이 jq여기서 사용하고 싶은 도구입니다. 누구든지 나에게 올바른 명령을 제공할 수 있습니까?

답변1

$ cat file.json
{
  "STRING_ID_1": {
    "en": "Some englisch text.",
    "de": "Some german text."
  },
  "STRING_ID_2": {
    "en": "Some other englisch text.",
    "de": "Some other german text."
  }
}
$ jq 'with_entries(.value = .value.en)' file.json
{
  "STRING_ID_1": "Some englisch text.",
  "STRING_ID_2": "Some other englisch text."
}
$ jq 'with_entries(.value = .value.de)' file.json
{
  "STRING_ID_1": "Some german text.",
  "STRING_ID_2": "Some other german text."
}

출력을 저장하려면 다른 파일 이름으로 리디렉션하세요.

이 변환은 각 최상위 키의 값을 키-값 쌍의 개체가 아닌 영어(또는 독일어) 문자열의 값으로 다시 작성합니다.

관련 정보