awk和特殊括号分隔符

Let*_*_Be 3 linux awk delimiter

我有以下格式的数据:

.......{INFO1}.....[INFO2]....
Run Code Online (Sandbox Code Playgroud)

因为awk拿起INFO1INFO2零件应该真的很简单,但是我真的很努力。

我已经设法[INFO2]通过使用获得了部分,awk -F'[][]' '{ print $2 }'INFO1正义将不适合我。

如何指定{}为分隔符?

fed*_*qui 6

只需使用[][{}]定义您可以使用这些:[]{}作为字段分隔

awk -F"[][{}]" '{print ...}' file
Run Code Online (Sandbox Code Playgroud)

通常,您说-F"[PATTERNS]"

测试

$ echo ".......{INFO1}.....[INFO2]...." | awk -F"[][{}]" '{print $2}'
INFO1
$ echo ".......{INFO1}.....[INFO2]...." | awk -F"[][{}]" '{print $4}'
INFO2
Run Code Online (Sandbox Code Playgroud)

  • `[`用`]`封闭,除非`]`紧跟在打开的`[`之后 (5认同)
  • 否则,您可以对其进行转义([请参见手册](https://www.gnu.org/software/gawk/manual/html_node/Bracket-Expressions.html#Bracket-Expressions)):`[{} [\]]`也可以 (4认同)