验证文件记录 shell 脚本
Validating file records shell script
我有一个包含以下内容的文件,我想验证内容为
1.I 有条目 rec$NUM 并且该字段应该只重复 7 次。
例如我有 rec1.any_attribute 这个 rec1 在整个文件中应该只出现 7 次。
2.I 需要为此验证脚本。
如果 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=
请帮忙
提前致谢...:)
grep '^rec1' file.txt | wc -l
grep '^rec2' file.txt | wc -l
grep '^rec3' file.txt | wc -l
以上都应该return7.
简单awk
:
awk -F: '/^rec/{a[]++}END{for(t in a){if(a[t]!=7){print "Some error for record: " t}}}' test.rc
命令:
grep rec file2.txt | cut -d':' -f1 | uniq -c | egrep -v '^ *7'
如果文件遵循您的规则将成功,否则将失败(并且 returns 失败记录)。
(如果记录编号可以混合,则将 "uniq -c" 替换为 "sort -u")。
我有一个包含以下内容的文件,我想验证内容为
1.I 有条目 rec$NUM 并且该字段应该只重复 7 次。 例如我有 rec1.any_attribute 这个 rec1 在整个文件中应该只出现 7 次。
2.I 需要为此验证脚本。 如果 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=
请帮忙
提前致谢...:)
grep '^rec1' file.txt | wc -l
grep '^rec2' file.txt | wc -l
grep '^rec3' file.txt | wc -l
以上都应该return7.
简单awk
:
awk -F: '/^rec/{a[]++}END{for(t in a){if(a[t]!=7){print "Some error for record: " t}}}' test.rc
命令:
grep rec file2.txt | cut -d':' -f1 | uniq -c | egrep -v '^ *7'
如果文件遵循您的规则将成功,否则将失败(并且 returns 失败记录)。
(如果记录编号可以混合,则将 "uniq -c" 替换为 "sort -u")。