linux shell 编程 grep "/$" awk '{print +$5}'-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

linux shell 编程 grep "/$" awk '{print +$5}'

a123456678 2016-06-14 15:35:49 1661

显示系统根目录的磁盘利用率,不显示百分号。( awk,sed )

[root@localhost ~]# df -h | grep "/$" | awk ' {print $5}' | sed 's/%//'

36

[root@localhost ~]# df -h | grep "/$" | awk ' {print +$5}'

36

我想问下,标红的地方: grep "/$" 表示啥意思?虽然我知道答案。

还有另外一个地方 awk '{print $5}' 和 awk '{print +$5}' 多了一个+

其结果就完全不一样了,那这个+是啥意思呢?

Shell Linux Perl
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:37:53

    grep "/$" 表示最后一个字符是“/”的行

    print +$5 这里应该是一元加的用法。

    手册上提到:

    • x Unary plus. The expression is converted to a number.

    表达式会转化为数值。简单测试:

    $ echo "a" |awk '{print $1,+$1,-$1,2+$1}'
    a 0 0 2
    $ echo "1a" |awk '{print $1,+$1,-$1,2+$1}'
    1a 1 -1 3
    $ echo "a1" |awk '{print $1,+$1,-$1,2+$1}'
    a1 0 0 2
    $ echo "1a1" |awk '{print $1,+$1,-$1,2+$1}'
    1a1 1 -1 3

    看起来是字符串中从第一个非数值字符开始都去掉了...

    这样的话这种用法倒是可以用在某些字符串处理的场景上

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程