如果第二个字段超过7个字符,请使用awk或perl单行打印行

pau*_*l44 4 perl awk

我有一个1000行的文件,每行有2个单词,用空格分隔.只有当最后一个字长超过7个字符时,如何打印每一行?我可以使用awk RLENGTH吗?perl有一个简单的方法吗?

gho*_*g74 10

@OP,当你调用match()函数时使用awk的RLENGTH .而是使用该length()函数来检查字符的长度

awk 'length($2)>7' file
Run Code Online (Sandbox Code Playgroud)

如果您正在使用bash,那么shell解决方案

while read -r a b
do
  if [ "${#b}" -gt 7 ];then
    echo $a $b
  fi
done <"file"
Run Code Online (Sandbox Code Playgroud)

  • +1 awk rock.请注意,它会自动打印所有匹配的行,因此您不必乱用任何printf调用! (2认同)

Chr*_*ung 9

perl -ane 'print if length($F[1]) > 7'
Run Code Online (Sandbox Code Playgroud)