как разделить один файл json на части файлов json

Один из методов, который используется для поиска непрочитанной почты, заключается в проверке временных меток в почтовом файле очереди. Если файл был записан в после обращения (прочитан ), т.е. его mtimeбольше, чем atime, то есть непрочитанная почта:

for f in /var/spool/mail/* ; do 
     [ $(stat -c '%Y -gt %X' "$f") ] && echo "$f has unread mail"
done

Это, конечно, считает все в почтовом ящике «прочитанным» после его открытия, независимо от того, просматривал ли кто-нибудь отдельные сообщения.

Во многих случаях прочитанные сообщения также перемещаются из каталога спулинга (в ~/mbox), поэтому можно просто проверить размер файла.

0
24.12.2019, 15:52
1 ответ

Так как .partition[].partitionсодержит идентификатор для любого конкретного раздела, мы можем перебрать их и для каждого идентификатора удалить разделы, которые не имеют этого конкретного идентификатора.

Далее предполагается, что идентификатор представляет собой простое целое число без пробелов и т. д.:

for part in $(jq '.partitions[].partition' file.json); do
    jq --argjson part "$part" 'del(.partitions[] | select(.partition != $part ))' file.json >file-partition-"$part".json
done

Это создаст один файл для каждого раздела, названный в честь раздела, а не индекса в массиве .partition[].

3
28.01.2020, 02:21

Теги

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