验证文件记录shell脚本

时间:2015-05-25 11:59:16

标签: linux bash shell unix sh

我有一个内容如下的文件,并希望将内容验证为

1.我有 rec $ NUM 条目,此字段只能重复7次。 例如,我有rec1.any_attribute这个rec​​1应该只在整个文件中出现7次。

2.我需要验证脚本。 如果 rec $ NUM 的记录小于7或大于7的脚本应报告该记录。

文件如下:::

rec1:sourcefile.name=

rec1:mapfile.name=

rec1:outputfile.name=

rec1:logfile.name=

rec1:sourcefile.nodename_col=

rec1:sourcefle.snmpnode_col=

rec1:mapfile.enc=

rec2:sourcefile.name=abc

rec2:mapfile.name=

rec2:outputfile.name=

rec2:logfile.name=

rec2:sourcefile.nodename_col=

rec2:sourcefle.snmpnode_col=

rec2:mapfile.enc=

rec3:sourcefile.name=abc

rec3:mapfile.name=

rec3:outputfile.name=

rec3:logfile.name=

rec3:sourcefile.nodename_col=

rec3:sourcefle.snmpnode_col=

rec3:mapfile.enc=

请帮助

先谢谢... :)

3 个答案:

答案 0 :(得分:2)

简单awk

awk -F: '/^rec/{a[$1]++}END{for(t in a){if(a[t]!=7){print "Some error for record: " t}}}' test.rc

答案 1 :(得分:0)

grep '^rec1' file.txt | wc -l
grep '^rec2' file.txt | wc -l 
grep '^rec3' file.txt | wc -l

以上所有都应该返回7.

答案 2 :(得分:0)

命令:

grep rec file2.txt | cut -d':' -f1 | uniq  -c | egrep -v '^ *7'
如果文件遵循您的规则,

将成功,如果没有,则失败(并返回失败的记录)。

(替换" uniq -c"按"排序-u"如果记录号可以混合使用。)