awk 分隔符

awk的默认分隔符是空格
awk的分隔符还分为 输入分隔符 和 输出分隔符
输入分隔符 field separator 简称FS
输出分隔符 output field separator 简称OFS
如果在一段文本中没有空格,我们可以指定以特定的文字或符号作为输入分隔符,我们可以使用-F选项指定输入分隔符。

指定:作为分隔符
root@talesun:~# head -3 /etc/passwd | awk -F: '{print $1,$NF}'
root /bin/bash
daemon /usr/sbin/nologin
bin /usr/sbin/nologin

除了使用-F指定输入分隔符,还可以通过设置内部变量的方式指定awk的输入分隔符,awk内置变量FS可以用于指定输入分隔符,但是在使用变量时,需要使用-v选项,用于指定对应的变量。

root@talesun:~# head -3 /etc/passwd | awk -v FS=':' '{print $1,$NF}'
root /bin/bash
daemon /usr/sbin/nologin
bin /usr/sbin/nologin
root@talesun:~#

-F选项用于指定输入分隔符
-v用于设置内置变量FS的值

root@talesun:~# awk -F: '{print $1,$2,$3}' /etc/passwd | head -3
root x 0
daemon x 1
bin x 2

root@talesun:~# awk -F: '{print $1,$2,$3}' /etc/passwd |head -3 |awk -v OFS='++
+' '{print $1,$2,$3}'
root+++x+++0
daemon+++x+++1
bin+++x+++2

猜你喜欢

转载自blog.51cto.com/90856/2310740