Как правильно проанализировать строку с помощью регулярных выражений в сценарии оболочки linux? Я написал следующий скрипт для печати моего представителя SO на консоли, используя curl
и sed
(не только потому, что я сумасшедший - я пытаюсь изучить некоторые сценарии оболочки и регулярное выражение перед переключением на linux).
json=$(curl -s http://stackoverflow.com/users/flair/165297.json)
echo $json | sed 's/.*"reputation":"\([0-9,]\{1,\}\)".*/\1/' | sed s/,//
Но почему-то я чувствую, что sed
не подходит для использования здесь. Я слышал, что grep
это все о регулярных выражениях, и немного изучил его. Но, очевидно, он печатает всю строку всякий раз, когда найдено совпадение - я пытаюсь извлечь число из одной строки текста. Вот уменьшенная версия строки, над которой я работаю (возвращается curl
).
{"displayName": "Amarghosh", "Reputation": "2,737", "badgeHtml": "\ u003cspan title = \" 1 серебряный значок \ "\ u003e \ u003cspan class = \" badge2 \ "\ u003e ● \ u003c / span \ u003e \ u003cspan class = \ "badgecount \" \ u003e1 \ u003c / span \ u003e \ u003c / span \ u003e "}
Я думаю, мои вопросы:
- Как правильно проанализировать строку с помощью регулярных выражений в сценарии оболочки linux?
-
sed
Правильно ли здесь использовать?
- Можно ли это сделать с помощью
grep
?
- Есть ли какая-нибудь другая команда, которая более проста / уместна?