-1
在我的bash腳本,我創建了返回以下JSON數組的函數:bash的grep的一部分
{
"access_token": "sjdhjdYdjsdbhggjhSJ78dbdsdbMhd=",
"scopes": "repository:delete repository:admin repository:write project:write team:write account:write",
"expires_in": 3600,
"refresh_token": "skdjKJDJDBNBDs",
"token_type": "bearer"
}
現在我wan't到grep的「」之間的訪問令牌。所以我得到了sjdhjdYdjsdbhggjhSJ78dbdsdbMhd=
我創建了一個像下面這樣的正則表達式,但是這會返回一個grep: invalid repetition count(s)
錯誤。
grep -P '\{\s*"access_token"\s*:\s*(.+?)\s*\"' foobar.txt
一個有趣的事情是,他們的行爲跨根據系統的不同變量,比如哪個libpcre你的grep被編譯了。在我的系統(GNU的grep 3.1,libpcre 8.41),你原來的代碼無需修改。 –
@Gavin,如果你能在瑞普OP的錯誤,你能提供的版本信息? –
(順便說一句,我假設,真實的數據沒有換行符 - 儘管被給予的問題,例如新行 - 爲給定的'grep'命令未在多模式下運行,而不會匹配'\ s'下的換行符)。 –