Linux常用基本命令:三剑客命令之-awk输入输出分隔符

输入分隔符,英文原文为field separator,此处简称为FS,默认是空白字符(即空格),awk默认以空白字符为分隔符对每一行进行分割。

输出分割符,英文原文为output field separator,此处简称为OFS,awk将每行分割后,输出在屏幕上的时候,awk默认的输出分割符也是空格。

1,用F选项,指定输入分隔符

ghostwu@dev:~/linux/awk$ cat ghostwu.txt 
ghostwu-20-man
zhangsan-22-woman
lisi-23-woman
ghostwu@dev:~/linux/awk$ awk '{print $1, $2, $3}' ghostwu.txt 
ghostwu-20-man  
zhangsan-22-woman  
lisi-23-woman 

如果不指定分隔符,默认用空格,是不能切割ghostwu-20-man 这一行的 每一列的

ghostwu@dev:~/linux/awk$ awk -F- '{print $1, $2, $3}' ghostwu.txt 
ghostwu 20 man
zhangsan 22 woman
lisi 23 woman

F指定'-'为分隔符,同理,先利用sed把ghostwu.txt分割符变成#,然后再用awk的F选项指定分隔符#来进行切割

ghostwu@dev:~/linux/awk$ sed -i 's/\-/#/g' ghostwu.txt 
ghostwu@dev:~/linux/awk$ cat ghostwu.txt 
ghostwu#20#man
zhangsan#22#woman
lisi#23#woman
ghostwu@dev:~/linux/awk$ awk -F# '{print $1, $2, $3}' ghostwu.txt 
ghostwu 20 man
zhangsan 22 woman
lisi 23 woman

也可以使用内置变量FS 配合-v选项指定输入分隔符

ghostwu@dev:~/linux/awk$ awk -v FS='#' '{print $1, $2, $3}' ghostwu.txt 
ghostwu 20 man
zhangsan 22 woman
lisi 23 woman

而-F,就是options的一种,用于指定输入分隔符。

-v也是options的一种,用于设置变量的值。

2,使用OFS指定输出分隔符,OFS是内置变量,配合v选项一起使用

ghostwu@dev:~/linux/awk$ cat ghostwu.txt 
ghostwu#20#man
zhangsan#22#woman
lisi#23#woman
ghostwu@dev:~/linux/awk$ awk -v FS='#' '{print $1, $2, $3}' ghostwu.txt 
ghostwu 20 man
zhangsan 22 woman
lisi 23 woman
ghostwu@dev:~/linux/awk$ awk -v FS='#' -v OFS='--->' '{print $1, $2, $3}' ghostwu.txt 
ghostwu--->20--->man
zhangsan--->22--->woman
lisi--->23--->woman

注意的在输出列的时候,列与列之间要用逗号,如果不用逗号,就变成连接在一起输出

ghostwu@dev:~/linux/awk$ awk -v FS='#' -v OFS='--->' '{print $1 $2 $3}' ghostwu.txt 
ghostwu20man
zhangsan22woman
lisi23woman
ghostwu@dev:~/linux/awk$ 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值