awk,grep,sed三剑客
2018-10-08 21:04
489 查看
想学好“三剑客”最基本还是 正则表达式的熟练
日志的格式
2018/10/03 23:59:14.944 adapter.go:353: [warning] [SLOW_QUERY] cost_time:111.420169ms succ:true connection_id:0 txn_start_ts:403375431254540289 database: table_ids:[21] index_ids:[1] sql:select tab_id, is_ind, hist_id, distinct_count, version, null_count, tot_col_siz from mysql.stats_histograms where table_id = 40373 ...
grep "[0-9]m[0-9]" slow-log-2018-10-06.log |awk -F":" '{print $6, $NF}' |sed 's/succ//g' > slow_sql-2018-10-08.log grep "[4-6][0-9]\.[0-9]\{2,\}s" slow-log-2018-10-06.log grep ":9[0-9][0-9]\." slow-log-2018-10-06.log |awk -F":" '{print $6, $13}' | grep 'limit'
awk
# 用awk打印除第一列之外的所有列, awk '{for(i=2;i<=NF;++i) printf $i "\t";printf "\n"}' test.txt # 上面的格式有时候会报错,导致过滤的部分数据丢失,printf加个括号就不报错了,为什么? awk -F: '{printf $6 "\t";for(k=13;k<=NF;++k) printf("%s ", $k);printf "\n"}'
# 有如下的log文件: $ cat /tmp/hoge.data 2011-01-13 18:47:46 WARN HogeHoge - getData 180 2011-01-13 18:47:46 WARN HogeHoge - getData 485 2011-01-13 18:47:46 WARN HogeHoge - getData 405 # 最右边的数值表示数据。计算一下数据的和。 $ cat /tmp/hoge.data | awk '{ sum += $7 } END { print sum }' 1070 # 最开始的{} ,定义sum变量,累加数据。最后,在END内 print sum 输出和. ##然后,计算一下平均值。 $ cat /tmp/hoge.data | awk '{ sum += $7; } END { print "sum = " sum; print "average = " sum/NR }' sum = 1070 average = 356.667
$ cat a.txt 苹果 5 kg 香蕉 8 kg 橘子 3 kg 香蕉 4 kg 苹果 8 kg # 相加求和 awk '{sum[$1]+=$2}END{for(c in sum){print c,sum[c]}}' a.txt # 统计 awk '{a[$1]+=1;} END {for(i in a){print a[i]" "i;}}' a.txt ### 如何sum并平均呢?
sed
# sed 去除所有空格 sed s/[[:space:]]//g
# #格式如: #4.904638471s selectchannel_id,game_id, sed '/[0-9]\{5,\}/ s/s//g' d.txt sed '/[0-9]\{5,\}/ s/s\b//g' d.txt # \b 匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。 ## 这 [0-9]和\d 不一样的用法吗?下面的没效果 sed '/\d{5,\}/ s/s//g' d.txt
grep
# 递归式搜索,当前文件和文件夹里面的文件也会被过滤 grep -ri "SQL_NO_CACHE" * # -v参数,取反 grep -v "update" test.txt
相关文章推荐
- Linux三剑客应用小结---grep、sed、awk
- 三剑客 -- sed,awk和grep
- sed、grep、awk -- 三剑客笔记记录
- linux三剑客命令-grep、sed、awk--grep
- Linux文本操作三剑客(sed, awk, grep)——sed
- Linux文本操作三剑客(sed, awk, grep)——awk
- Linux文本操作三剑客(sed, awk, grep)——grep
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- LINUX sed grep awk之间比较整理
- grep,sed,awk的用法举例
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- grep,awk和sed
- 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
- shell常用工具使用——awk、grep以及sed
- shell三大文本处理工具grep、sed、awk心得
- grep-2.26 sed-4.2.2 awk-4.1.4 wget-1.18 pcregrep-8.39 pcre2grep-10.22 for windows 最新版本静态编译
- linux正则表达式(awk、sed、grep)
- 正则表达式的整理grep,sed,awk
- Shell中的grep、awk和sed的常用命令和语法
- grep, sed 与 awk 补补课,到底怎么用!