我有一个1000行的文件,每行有2个单词,用空格分隔。只有当最后一个字长超过7个字符时,如何打印每一行?我可以使用awk RLENGTH吗? perl有一个简单的方法吗?
答案 0 :(得分:10)
@OP,当你调用match()
函数时,会使用awk的RLENGTH。相反,使用length()
函数检查字符长度
awk 'length($2)>7' file
如果您使用的是bash,那么shell解决方案
while read -r a b
do
if [ "${#b}" -gt 7 ];then
echo $a $b
fi
done <"file"
答案 1 :(得分:9)
perl -ane 'print if length($F[1]) > 7'
答案 2 :(得分:3)
你可以这样做:
perl -ne '@a=split/\s+/; print if length($a[1]) > 7' input_file.txt
使用的选项:
-n assume 'while () { ... }' loop around program -e 'command' one line of program (several -e's allowed, omit programfile)
您可以使用Chris
使用的自动拆分选项-a autosplit mode with -n or -p (splits $_ into @F)
答案 3 :(得分:2)
perl -ane 'length $F[1] > 7 && print' <input_file>
答案 4 :(得分:0)
perl -lane 'print if (length($F[$#F]) > 7)' fileName
或
perl -pae '$_ = "" if (length($F[$#F]) <= 7)' fileName