Bash读取文件并从中获取值

时间:2017-09-16 21:29:27

标签: bash shell

知道如何读取文件并从文本中获取值吗?

我们说我有

    Json info lastActiveTimes:{"707514313":1505584723,"100004389551456":1505591385},chatNotif:0}, a lot of more Json info.

我想从Start:到End,所以请阅读文件然后返回

{"707514313":1505584723,"100004389551456":1505591385}

我在OSX中使用bash

2 个答案:

答案 0 :(得分:2)

如果您在开始和结束之间有2nd line with start in it,则可以使用

sed -n '/Start:/,/End/p' file| sed '1s/.*Start://; $s/End.*//'

更新: 问题已经改变,现在它可以像

一样
sed 's/.*\({[^}]*}\).*/\1/' file

grep -Eo "{[^}]*}" file

答案 1 :(得分:1)

使用GNU grep和Perl regular expression-P):

grep -Poz '(?<=Start:).*(\n)*.*(?= End)' file

输出:

aaaaaaaaaabbbbbbbb
ccccccc