Bash读取文件并将值从
问题描述:
任何想法如何读取文件并从文本中获取值?Bash读取文件并将值从
Let's说我有
Json info lastActiveTimes:{"707514313":1505584723,"100004389551456":1505591385},chatNotif:0}, a lot of more Json info.
而且我想从开始到获得:要结束了,所以读取文件和刚刚从OSX
返回使用bash{"707514313":1505584723,"100004389551456":1505591385}
I'm
答
随着GNU grep和Perl regular expression(-P
):
grep -Poz '(?<=Start:).*(\n)*.*(?= End)' file
输出:
aaaaaaaaaabbbbbbbb ccccccc
答
当你开始和结束之间有2nd line with start in it
,你可以使用
sed -n '/Start:/,/End/p' file| sed '1s/.*Start://; $s/End.*//'
UPDATE: 问题发生了变化,现在它可以是任何东西像
sed 's/.*\({[^}]*}\).*/\1/' file
of
grep -Eo "{[^}]*}" file
使用'jq'(json查询)包解析json会更好。 (正如你可以在示例导致问题之前通过额外的json信息所看到的那样)。也就是说,PCRE的'sed'或'grep'可以处理检索大括号的内容。 –
谢谢,我知道jq,但恐怕这个源不仅是json,而且也是html。 – paul
[OP评论表明有多个json括号](https://stackoverflow.com/questions/46258581/bash-read-file-and-get-values-from-to#comment79486880_46258713),(* ie *: '{...}'),因此这个问题很模糊,需要指定需要哪个括号。 – agc