使用awk测试第一个字符是否为数字

时间:2015-08-05 11:49:41

标签: awk

如何使用awk检查字符串的第一个字符是否为数字。我在下面尝试过,但我一直遇到语法错误。

awk ' { if (substr($1,1,1) == [0-9] ) print $0 }' da.txt

2 个答案:

答案 0 :(得分:8)

我建议使用@ hek2mgl解决方案。我已经指出了一些问题。

问题:

  1. 您应该在/..regex../内使用正则表达式。
  2. 使用~代替==
  3. 有效:

    awk '{ if (substr($1,1,1) ~ /^[0-9]/ ) print $0 }' file.txt
    

答案 1 :(得分:6)

我会使用正则表达式而不是substr()。这样就可以了:

awk '$1 ~ /^[[:digit:]]/' da.txt

请注意,我省略了print $0,因为它是awk中的默认操作。