awk and special brackets delimiters

前端 未结 4 547
春和景丽
春和景丽 2020-12-18 10:27

I have data in the following format:

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

For awk it should be really simple to pick up the IN

相关标签:
4条回答
  • 2020-12-18 10:56

    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
    
    0 讨论(0)
  • 2020-12-18 10:59

    You just have to add {} to the field separator:

    ~$ echo ".......{INFO1}.....[INFO2]...." | awk -F'[][{}]' '{print $2,$4}'
    INFO1 INFO2
    
    0 讨论(0)
  • 2020-12-18 11:09
     $ echo '.......{INFO1}.....[INFO2]....' | awk -F'[][{}]' '{print $2}'
    INFO1
    
    0 讨论(0)
  • 2020-12-18 11:09
    grep -oP '(?<=[{\[]).*?(?=[\]}])'
    
    0 讨论(0)
提交回复
热议问题