日期:2014-05-16  浏览次数:20871 次

如何用awk统计数据
我有一个数据文件,是文本文件,每一行若干个A和B字符构成,如下所示

ABABABABABABABABABABABABABABABA
ABABABABABABABABABABABABABABABAB
BABABABABABABABABABABABBBBBBBB
ABABABABABABABABABABABABABABABAB
BABABABABABABABABABABABBBBBBBB
ABABABABABABABABABABABABABABABAB
BABABABABABABABABABABABBBBBBBB
ABABABABABABABABABABABABABABABAB
BABABABABABABABABABABABBBBBBBB
ABABABABABABABABABABABABABABABAB
BABABABABABABABABABABABBBBBBBB

我想统计下每行的A和B的个数,感觉awk应该很好做,但本人菜鸟,不太会awk,sed用的也不熟,所以想请教下对这个比较熟悉的人,谢谢啦
------最佳解决方案--------------------
统计每行B的数目
sed 's/A//g' a.txt
------其他解决方案--------------------
awk '{print length}'

统计每行A的数目
sed 's/B//g' a.txt
------其他解决方案--------------------
awk '{print length}'
------其他解决方案--------------------
或者
awk '{gsub("A","");print length}' a.txt

awk '{gsub("B","");print length}' a.txt
------其他解决方案--------------------
刚看了个awk的小教程,自己弄明白了
http://man.lupaworld.com/content/manage/ringkee/awk.htm

awk '{gsub(/B/,"");print length}' data.txt > a_count
awk '{gsub(/A/,"");print length}' data.txt > b_count
awk 'NR==FNR{a[NR]=$0}NR>FNR{print a[FNR],$0}' a_count b_count > ab_count


教程给大家推荐下
http://man.lupaworld.com/content/manage/ringkee/awk.htm

------其他解决方案--------------------
谢谢1楼,你回答对我很有帮助,结贴了