Используйте здесь -документ:
for f in $files; do
cat <<END_HTML
<tr class="details">
<td> f.$DATE </td>
<td> f.$APPLIANCE </td>
<td> f.$HOST </td>
<td> f.$MDL </td>
</tr>
END_HTML
done
Это выведет блок столько раз, сколько слов содержится в $files
, с именованными переменными, расширенными до их соответствующих значений.
Предполагая, что файл JSON полный
{
"name": "john",
"rollno": "1040.48",
"marks": "0.00"
}
(новые строки не имеют значения ), тогда следующие данные будут извлечены, связанные с ключом rollno
, с использованиемjq
:
$ jq -r '.rollno' file.json
1040.48
Или с включенным форматированием строк:
$ jq -r '"rollno: \(.rollno)"' file.json
rollno: 1040.48
Флаг -r
предназначен для получения «сырых» выходных данных из jq
, а не JSON.
Попробуйте это:
echo '{"name":"john","rollno":"1040.48","marks":"0.00"' | awk -F, '{print $2}'
Выход
"rollno":"1040.48"