управляйте, “находят … - должностное лицо mv …” создало файл со странным содержанием

Хотя мне пришлось удалить последнюю запятую во входных данных Вашего примера, чтобы он заработал, потому что jq жаловался на ожидание другого элемента массива, это:

INPUT | jq -r '[.[][].displayName], [.[][].value]| join(", ")'

... заставило меня.....

First Name, Last Name, Position, Company Name, Country
VALUE, VALUE, VALUE, VALUE, VALUE

Как это работает в двух словах:

  1. я перешел на третий уровень объектов данных, используя форму пустого [] индексного поля и .dot нотацию.
  2. Однажды достаточно глубоко я указал поля данных, которые мне нужны по имени, например, .[][][].displayName.
  3. Я заверил, что мои желаемые поля самоустанавливаются, вернув их как отдельные объекты массива, такие как [.[][].displayName], [.[][].value]
  4. , а затем отправил эти объекты в функцию join(", "), чтобы они были объединены как отдельные сущности.

На самом деле выполнение [.field] - это всего лишь другой путь к map(.field), но это немного более специфический способ, так как он задает уровень глубины для получения желаемых данных.

0
25.04.2015, 15:50
1 ответ

Предположим, что нашли 3 файла: a, b и c. В результате было найдено 3 команды:

mv a /myhome/targetdir
mv b /myhome/targetdir
mv c /myhome/targetdir

так, a была переименована в /myhome/targetdir, затем b была переименована в /myhome/targetdir (уничтожение того, что раньше было a), а затем c была переименована в /myhome/targetdir, уничтожение того, что раньше было b. Файл c в порядке (он только что был переименован). Остальные файлы в беде. Взгляните на Можно ли восстановить перезаписанные файлы?. Возможно, вы сможете что-то восстановить.

В будущем, использование:

mv -t /myhome/targetdir '{}' 

было бы безопаснее.

6
28.01.2020, 02:15

Теги

Похожие вопросы