本文介绍了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域分隔符\\ [\\]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!