awk分割字符

我们在Linux下运行命令的时候,经常会看到很多命令的输出都是分列的,作为程序员的我们经常需要取某些列来分析,awk就提供了这个比较灵活的功能。
  • awk默认的列分割符是空格(多个空格也是一样),比如:

$ echo "folder1 folder2 folder3" | awk  '{print $1}'
folder1

  • 当然你也可以用-F option指定分割符,比如下面的命令用冒号作为分割符:

$ echo "folder1:folder2:folder3" | awk -F ":" '{print $1}'
folder1

  • 分割符也可以是某个Regrex表达式,比如下面是从字符串中得到两个host name:
$ echo "hostA192.168.1.100hostB192.168.1.101" | awk -F "[0-9]+.[0-9]+.[0-9]+.[0-9]+" '{print $1; print $2}'
hostA
hostB
  • 但是如果我们是在shell里先remote再执行awk命令,但需要对列前面的$进行escape,否则shell会在本地先把$2进行变量替换了,这就不是我们的本意了,比如:
ssh root@myserver "consul members | awk '{if (NR>1) {print \$2}}'"

这里就需要对$2进行转义,否则shell会将它在先本地替换成shell脚本的第二个参数的值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值