Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have data in the following format:

.......{INFO1}.....[INFO2]....

For awk it should be really simple to pick up the INFO1 and INFO2 parts, but I'm really struggling with it.

I have managed to get the [INFO2] part by using awk -F'[][]' '{ print $2 }' but the INFO1 just will not match for me.

How do I specify {} as delimiters?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
1.4k views
Welcome To Ask or Share your Answers For Others

1 Answer

Just use [][{}] to define that you can use either of these: [, ], { or } as field separators

awk -F"[][{}]" '{print ...}' file

In general, you say -F"[PATTERNS]".

Test

$ echo ".......{INFO1}.....[INFO2]...." | awk -F"[][{}]" '{print $2}'
INFO1
$ echo ".......{INFO1}.....[INFO2]...." | awk -F"[][{}]" '{print $4}'
INFO2

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...