#grep
#grep
Вопрос:
Я хотел бы использовать grep для извлечения только одной части между фигурными скобками
Мой файл журнала:*
{
* "path": "/root/power.doc"
}
Как извлечь содержимое между фигурными скобками?
Комментарии:
1. Ваш файл журнала выглядит как разница в файле JSON, возможно, было бы проще использовать анализатор JSON, такой как jq, для прямого доступа к файлу.
2. действительно! Но мои действия ограничены.
Ответ №1:
grep
не использует диапазоны. Вы могли бы использовать awk
вместо:
awk '/{/,/}/ {if($0 ~ /path/){print $0}}' kylian.log
* "path": "/root/power.doc"
РЕДАКТИРОВАТЬ 1:
Вот измененный файл для тестирования:
$ cat kylian.log
* "path": "/root/power_before.doc"
--- before
after
@@ -1,4 1,4 @@
{
* - "mode": "0010",
* "mode": "0030",
* "path": "/root/power.doc"
}
* "path": "/root/power_after.doc"
И вот результат, когда я запускаю свой awk против него:
$ awk '/{/,/}/ {if( $0 ~ /path/){print $0}}' kylian.log
* "path": "/root/power.doc"