Это распечатает считанные строки, если последний символ по модулю 2 не равен нулю.
perl -wlne 'print $_ if ((substr $_, -1) % 2)' /path/to/file
Кажется, этот трюк с потоковым фильтромjq 1.5
inputs
помогает
... | jq -n '.items |= [inputs]'
Пр.
$ find ~/ -maxdepth 1 -name "D*" |
while read line; do
jq -n --arg name "$(basename "$line")" --arg path "$line" '{name: $name, path: $path}'
done | jq -n '.items |= [inputs]'
{
"items": [
{
"name": "Downloads",
"path": "/home/steeldriver/Downloads"
},
{
"name": "Desktop",
"path": "/home/steeldriver/Desktop"
},
{
"name": "Documents",
"path": "/home/steeldriver/Documents"
}
]
}
Если вы не возражаете против использования языка программирования, это довольно просто. Вот пример с PHP:
<?php
$m1 = [
'items' => []
];
$a1 = glob('~/D*');
foreach ($a1 as $s1) {
$m1['items'][] = [
'name' => basename($s1),
'path' => $s1
];
}
echo json_encode($m1, JSON_PRETTY_PRINT);