在此上下文中,指定的字段分隔符如何工作?
awk -F\' '{print "conn kill "$2"\nrepair mailbox "$2" repair=1"}'
答案 0 :(得分:2)
-F\'
使用单引号'
作为字段分隔符。
同样'
通过前面的\
进行转义,以便awk不会将'
视为操作部分的开头。
或者,您可以将'
括在双引号中:
$ echo "foo'bar'baz" | awk -F\' '{print $1}'
foo
$ echo "foo'bar'baz" | awk -F"'" '{print $1}'
foo
答案 1 :(得分:1)
AWK逐行处理文件。每行都分为多个字段,然后您可以使用美元变量$1
进行访问... $9
($0
是整行,IIRC)。默认情况下,通过在空格上使用分隔将行拆分为字段,但您可以使用-F
命令行选项或FS
变量指定要拆分的字符。
因此,在您的情况下,字段分隔符设置为单引号('
)。因此,foo'bar'baz
之类的输入行会设置$1 == "foo"
,$2 == "bar"
和$3 == "baz"
。