awk 分隔符 转义
作者:shen 发布时间:May 29, 2011 分类:Linux,Shell
awk 可以指定分隔符,在指定的分割符里面如果包含元字符,就需要转义。在awk中和一般的正则表达式中转义规则略有不同。比如
如果要指定 | 分隔符
awk -F'\|'
上面那种方法是不行的。必须这样:
awk -F'\\|'
就是说awk分割符遇到元字符转义,需要两个反斜杠
作者:shen 发布时间:May 29, 2011 分类:Linux,Shell
awk 可以指定分隔符,在指定的分割符里面如果包含元字符,就需要转义。在awk中和一般的正则表达式中转义规则略有不同。比如
如果要指定 | 分隔符
awk -F'\|'
上面那种方法是不行的。必须这样:
awk -F'\\|'
就是说awk分割符遇到元字符转义,需要两个反斜杠
vi v.out
aaa|bbb
ccc|ddddd
用awk处理时,会有如下:
awk -F'|' '{print $1,$2}' v.out
aaa bbb
ccc dddd
gavingeng@gavingeng:~/tmp$ awk -F'\|' '{print $1,$2}' v.out
awk: warning: escape sequence `\|' treated as plain `|'
aaa bbb
ccc dddd
gavingeng@gavingeng:~/tmp$ awk -F'\\|' '{print $1,$2}' v.out
aaa bbb
ccc dddd
显然,对于|的分割,这里可以直接做分割,如下情况的分割,不知做过处理否:
aaa\tbbb
aaa\tccbb
以\t做分割的处理是:
awk -F'\\\\t' '{print $1,$2}' tt.out 使用3个\来做转义\t