【发布时间】:2017-04-24 22:51:03
【问题描述】:
我将 var 设置为
var=$(cat ip.txt | head -1 | sed 's/[^|]//g' | awk '{ print length }')
将'|'的数量存储在第一行。
然后,我可以使用
获取每行中的分隔符数量awk -F\| '{print NF-1}' ip.txt
我需要将我得到的各个数字与$var 进行比较。
所需的最终输出是显示这种行为的行数。 例如,如果第 2 行到第 20 行的分隔符比标题多,那么我的输出应该是,总共 6000 行(文件中的行数)中,19 行的分隔符比顶行多。
例子:
$ cat ip.txt
DeptID|EmpFName|EmpLName|Salary
Engg|Sam|Lewis|1000
Engg|Smith|Davis|2000|||
HR|Denis|Lillie|1500
HR|Danny|Borrinson|3000|
IT|David|Letterman|2000||
IT|John|Newman|3000
标题有 3 个“|”,但第 3,5 和 6 行有额外的分隔符。 所以我想要一个输出,比如“总共 7 行中,3 行的分隔符比顶行多”
【问题讨论】:
-
提供实际输入样本和预期输出。
-
用一个例子编辑了问题
标签: bash unix awk text-processing