Linux/Unix:Sed/Grep/Awk打印行(如果只有3个单词的话)
时间:2020-01-09 10:46:08 来源:igfitidea点击:
我有一个文本文件:
This is a test. Unix is Best. No Linux is the Best. Hello Linux welcome to linux world welcome to theitroad
如何打印仅包含三(3)个单词的所有行?
awk命令非常适合这种模式处理文本文件。
Awk设置名为NF的变量。
它设置为输入记录中的字段总数。
因此,如果NF等于3,则打印该行。
语法如下:
awk '{ if ( NF == 3 ) print } ' /path/to/input
在循环和循环中使用IFS(内部字段分隔符)时,还可以使用Shell脚本来模拟awk命令输出:
#!/bin/bash # AWK NF if condition (awk '{ if ( NF == 3 ) print } ' $_input) emulation using bash # Author: theitroad <www.theitroad.local> # ---------------------------------------------------------------------------------- _input="/path/to/data.txt" _word=3 while IFS= read -r line do set -- $line [ $# -eq $_word ] && echo "$line" done < "$_input"