AWK域分隔符\\ [\\] [英] awk field separator \[ \]

查看:224
本文介绍了AWK域分隔符\\ [\\]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于下面的命令:

 猫11 | awk的-F[\\ [\\]'{打印$ 1,$ 2}
猫11 | awk的-F[\\] \\ []'{打印$ 1,$ 2}

为什么AWK输出不同势:

  zxscgdb @ Linux的:〜/ tmp目录>猫11
九月12日至5日:07:53:33 F [zxinit_lib.c] L [485] E [10106]流程:zxsc_gdb是确定的。
九月12日至5日:08:03:35 F [zxinit_lib.c] L [485] E [10106]流程:zxsc_gdb是确定的。
九月12日至5日:08:13:37 F [zxinit_lib.c] L [485] E [10106]流程:zxsc_gdb是确定的。zxscgdb @ linux的:〜/ tmp目录>猫11 | awk的-F[\\] \\ []'{打印$ 1,$ 2}
AWK:警告:转义序列'\\]'视为纯`]'
AWK:警告:转义序列'\\ ['视为纯`['
九月12日至5日:07:53:33女性zxinit_lib.c
九月12日至5日:08:03:35女性zxinit_lib.c
九月12日至5日:08:13:37女性zxinit_lib.czxscgdb @ linux的:〜/ tmp目录>猫11 | awk的-F[\\ [\\]'{打印$ 1,$ 2}
AWK:警告:转义序列'\\ ['视为纯`['
AWK:警告:转义序列'\\]'视为纯`]'
九月12日至5日:07:53:33 F [zxinit_lib.c] L [485] E [10106]流程:zxsc_gdb是确定的。
九月12日至5日:08:03:35 F [zxinit_lib.c] L [485] E [10106]流程:zxsc_gdb是确定的。
九月12日至5日:08:13:37 F [zxinit_lib.c] L [485] E [10106]流程:zxsc_gdb是确定的。


解决方案

我的理解是,要使用 [] 作为分隔符。在这种情况下:

 的awk -F'[] []''{打印$ 1,$ 2}11

该字符] 后立即 [(如 [] )作为本身。

Given following command:

cat 11 | awk -F"[\[\]]" '{print $1,$2}'        
cat 11 | awk -F"[\]\[]" '{print $1,$2}'

why does awk output diffrent:

zxscgdb@linux:~/tmp> cat 11    
12-05 09:07:53:33 F[zxinit_lib.c] L[485] E[10106] process:zxsc_gdb is ok.    
12-05 09:08:03:35 F[zxinit_lib.c] L[485] E[10106] process:zxsc_gdb is ok.    
12-05 09:08:13:37 F[zxinit_lib.c] L[485] E[10106] process:zxsc_gdb is ok.

zxscgdb@linux:~/tmp> cat 11 | awk -F"[\]\[]" '{print $1,$2}'    
awk: warning: escape sequence `\]' treated as plain `]'    
awk: warning: escape sequence `\[' treated as plain `['    
12-05 09:07:53:33 F zxinit_lib.c    
12-05 09:08:03:35 F zxinit_lib.c    
12-05 09:08:13:37 F zxinit_lib.c    

zxscgdb@linux:~/tmp> cat 11 | awk -F"[\[\]]" '{print $1,$2}'    
awk: warning: escape sequence `\[' treated as plain `['    
awk: warning: escape sequence `\]' treated as plain `]'    
12-05 09:07:53:33 F[zxinit_lib.c] L[485] E[10106] process:zxsc_gdb is ok.     
12-05 09:08:03:35 F[zxinit_lib.c] L[485] E[10106] process:zxsc_gdb is ok.     
12-05 09:08:13:37 F[zxinit_lib.c] L[485] E[10106] process:zxsc_gdb is ok. 

解决方案

My understanding is that you want to use [ and ] as delimiter. In this case:

awk -F '[][]' '{print $1,$2}' 11

The char ] immediately after a [ (as in []]) is taken as itself.

这篇关于AWK域分隔符\\ [\\]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆