夜息:Shell学习笔记(长期更新)

  • A+
本文信息本文由方法SEO顾问发表于2014-03-0719:27:47,共 946 字,转载请注明:夜息:Shell学习笔记(长期更新)_【方法SEO顾问】

其实已经积攒了不少心得,之前都没记下来。现在打算慢慢更新

获取每个IP访问量,并且排序

老的做法 cat log | awk ‘{print $1}’ | sort | uniq -c | sort -k1r

高效率的做法 cat log | awk ‘{a[$1]++} END {for (b in a) print b”\t”a[b]}’ | sort -k2r

通过数据自增来一次性去重。

衍生拓展

1.删除重复行

awk ‘!a[$0]++’ filename

2.合并同类项输出报表

张三 88

陈涛 78

陈涛 90

李四 77

王五 88

王五 99

张三 80

李四 90

输出成

张三 88 80

陈涛 78 90

王五 88 99

李四 77 90

awk ‘{a[$1]= a[$1]” ” $2} END  {for (b in a) print b“ ”a[b]}’  filename

感谢我的前同事,李学明http://somethings.me/同志给予我shell学习方面的帮助和启发。

(P.S:这个脚本排上了大用场。采集党的福音)

N久前有一个excel整理关键词的相关性,这边shell版本的也搞定了一部分。

在大量关键词文件根目录下

awk -F”,” {print FILENAME$0}’ *.csv | //将文件名和关键词拼接

awk -F”,” ‘{if ($4 <50) print $1}’ | //将每月广泛搜索<50的过滤掉,同时可以把表头过滤掉

awk -F”1329|csv” ‘{print $1}’ > FILENAME //将文件名中乱七八糟的东西去掉,这边注意,只输出$1,上面的命令还需要输出一次$3,因为$1和$3的编码不一样,一个是ANSI,一个是UTF-8,放在一起没法弄,最后用ue或者ep改一下编码再贴到一起。

awk -F”,” ‘{ if (a[$1] < 10) {a[$1]++; print $0}}’ //只输出相关性前10的词

最后的结果是类似下面

A|A1

A|A2

A|A3

A|A4

B|B1

B|B2

B|B3

比较漂亮格式了。

文件行内去重

while read line

do

echo $line | awk ‘BEGIN{OFS=”\n”} {if($1=$1) print $0}’|sort -u| awk ‘{printf $0″ “}END{printf “\n”}’

done < test.txt

原文地址:http://www.imyexi.com/?p=502

  • 版权声明:除非注明,本博客均为北京SEO方法的原创文章,转载或引用请以超链接形式标明本文地址,否则会在SEO圈内公开此种不尊重版权的行为,谢谢合作!本文地址:https://seofangfa.com/shell/shell-learning-note.html
  • 转载请注明:夜息:Shell学习笔记(长期更新)_ 【方法SEO顾问】

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  0   博主  0   引用   1

    来自外部的引用: 1

    • 央财在职研