awk 分隔符 转义

作者:shen 发布时间:May 29, 2011 分类:Linux,Shell

awk 可以指定分隔符,在指定的分割符里面如果包含元字符,就需要转义。在awk中和一般的正则表达式中转义规则略有不同。比如
如果要指定 | 分隔符
awk -F'\|'
上面那种方法是不行的。必须这样:
awk -F'\\|'
就是说awk分割符遇到元字符转义,需要两个反斜杠

标签: none

仅有一条评论 »

  1. gavingeng gavingeng

    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

添加新评论 »