仅打印超过$ 1字的行

Rik*_*Rik 0 linux bash wc

我想打印只有1美元或更多单词的行.请帮忙.

while read line ; do
    echo $line | wc -w 
done t1.txt
Run Code Online (Sandbox Code Playgroud)

zze*_*nnn 6

假设你将一个单词定义为由空格分隔的字符,那么awk会很容易地做到这一点:

awk -v COUNT=$1 'NF>COUNT' t1.txt
Run Code Online (Sandbox Code Playgroud)

它将第一个arg作为名为count的awk变量传递,并打印行,其中以空格分隔的字段数高于提供的计数.

例如

$ echo $COUNT
3
$ cat t1.txt
hey
hey hey hey hey hey
hey hey hey
hey hey hey
hey hey hey hey hey
hey hey hey hey hey
hey hey hey

$ awk -v COUNT=$COUNT 'NF>COUNT' t1.txt
hey hey hey hey hey
hey hey hey hey hey
hey hey hey hey hey
Run Code Online (Sandbox Code Playgroud)