【问题标题】:awk show just digitsawk 只显示数字
【发布时间】:2014-05-10 14:59:49
【问题描述】:

我在awk有命令:

awk '$0 !~ /[a-z]/ && $0 != 0' input.txt >> output.txt

所以我的输入是这样的:

123214
wedsd
sda25567
ssdf
!@!@#@%

我的输出是:

123214
!@!@#@%

我认为我对awk 做错了。

我想要 awk 只显示数字,我该怎么办?

谢谢

【问题讨论】:

  • 如果要包含数字,为什么要排除字母?
  • 你是对的......你能帮我吗?我是awk的新人
  • 您是否完全了解该命令的作用,或者您只是从某个地方复制/粘贴它?
  • 那你想学就学吧。这是通过阅读文档/教程/书籍来完成的,而不是让人们用勺子喂你复制/粘贴的东西。
  • 仅测试数字,使用锚点。看我的帖子。

标签: bash awk


【解决方案1】:

!@!@#@% 不包含a-z,也不包含0
这就是为什么你会受到欢迎。

要仅获取数字,请使用锚点:

awk '/^[[:digit:]]+$/'  file
123214

awk '/^[0-9]+$/' file

【讨论】:

    【解决方案2】:

    试试这个:

    awk '/^[0-9]+$/ && $0 != 0 {print}' input.txt >> output.txt
    

    【讨论】:

      猜你喜欢
      • 2013-05-02
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2020-09-09
      • 1970-01-01
      相关资源
      最近更新 更多