Recently, I was found a grep expression using -P option.
It's looks like the code below:
grep -o -P '(?<="uuid":")[\w\d=]*(?=")'
and the using example is below:
[root@rhel66 worktmp]# cat zdata2
{"valid":"2016-05-28T","uuid":"3BoZXJlLmxvY2FsZXhwaXJhdGlvbjoxNDY5Njk3NzEzMDAwOjVlY2ExMjg3YTBmMjdmNDk1M2YxZTk3ZmQwZTQ3MmFlOW",:"localdomain.local"}
[root@rhel66 worktmp]#
[root@rhel66 worktmp]# cat zdata2 | grep -o -P '(?<="uuid":")[\w\d=]*(?=")'
3BoZXJlLmxvY2FsZXhwaXJhdGlvbjoxNDY5Njk3NzEzMDAwOjVlY2ExMjg3YTBmMjdmNDk1M2YxZTk3ZmQwZTQ3MmFlOW
[root@rhel66 worktmp]#
I don't understand a few part of this expression.
- what is (?<="uuid":") mean? (I don't known ? <= mean..)
- What is (?=") mean?
Thank you for any help you can provide.