невозможно найти разницу между двумя json файлами с помощью команды comm в linux - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть два файла, которые имеют несколько json строк:

{"measure_data": {"dictId": "18F"}}
{"measure_data": {"dictId": "14F"}}

и

{"measure_data": {"dictId": "14F"}}
{"measure_data": {"dictId": "16F"}}

, и я хотел увидеть разницу между этими двумя файлами, поэтому хочу строки в файле 1, которые отличаются от строки 2 и наоборот.

Я пытался comm -23 file1.json file2.json > output.json, но вывод просто дает мне file1. json. Команды bash не работают в подобных случаях?

1 Ответ

0 голосов
/ 05 апреля 2020

Хм .. я не знаю, что вы хотите автоматизировать этот процесс или просто что-то искать.
Я программист, и иногда я использую следующие шаги:

  1. Подготовка / преобразование ввода в более простую форму.
  2. Для поиска различий используйте git, например: с графическим интерфейсом c.

При первом запуске пустой git хранилище:

git init
git commit --allow-empty -m "init"

Преобразование ввода в более простую форму и добавление в репо.

echo '{"measure_data": {"dictId": "18F"}}' > data.json
jq '.' data.json > tmp && mv tmp data.json
git add -A .
git commit -m "v1"

Затем преобразование второстепенных входных данных в более простую форму:

echo '{"measure_data": {"dictId": "14F"}}' > data.json
jq '.' data.json > tmp && mv tmp data.json

Наконец, проверьте diff через терминал или используя пользовательский интерфейс, например gitk, SourceTree или ..:

git diff
...