使用awk&&sed提取日志中的有效信息(代码片段)

author author     2022-12-24     367

关键词:

日志信息:

源数据:1.1.1.1 - - [08/Aug/2018:00:00:14 +0800] "GET http://www.test.test/test1/test2/tes3 HTTP/1.1" 200 1306 "http://a.b.cn/test/test?form" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"
访问一级目录: http://www.test.test/test1 访问来源: http://a.b.cn


开始处理:
1.先使用awk 提取需要的信息,由于目标站点的域名是固定的 www.test.test 所以这个不做判断,只判断访问来源和访问状态
#取第7 9 11列 状态200 源是b.cn
awk ‘$9 =="200" && $11 ~/^"http://[a-zA-Z0-9]*.b.cn/ print $7," ",$9," ",$11‘

得到如下数据

http://www.test.test/test1/test2/tes3 200 http://a.b.cn/test/test?form

2.再使用sed 对剩下的数据进行处理,只需要源的域名,以及访问目标的一级域名

 sed ‘s/"//g‘ | sed ‘s/(http://[a-zA-Z0-9]*.b.cn)/.*/1/g‘   #截取b.cn域名信息
 sed ‘s/(http://www.test.test/[0-9a-zA-Z_]*/).*200/1/g‘ #取www.test.test的第一级目录

3.通过awk 和 sed 之后,再去重 。去重需要先排序 再使用 uniq去重

sort -k2n | uniq

4.完整脚本

#!/bin/bash
cd /home/log
log=`ls *.log`
for i in $log
do
          cat $i | awk ‘$9 =="200" && $11 ~/^"http://[a-zA-Z0-9]*.b.cn/ print $7,"	",$9,"	",$11‘ |  sed ‘s/"//g‘ | sed ‘s/(http://[a-zA-Z0-9]*.test.test)/.*/1/g‘| sed ‘s/(http:
//www.test.test/[0-9a-zA-Z_]*/).*200/1/g‘ >>test.log
done
sleep 3
cat test.log | sort -k2n | uniq >test1.log

使用 bash (sed/awk) 提取 CSV 文件中的行和列?

】使用bash(sed/awk)提取CSV文件中的行和列?【英文标题】:usingbash(sed/awk)toextractrowsANDcolumnsinCSVfiles?【发布时间】:2013-01-0716:36:57【问题描述】:bash是否能够处理从csv文件中提取行和列?希望我不必求助于python..我的5列csv文件如下... 查看详情

awk&sed小实例

...印文件奇数行sed-n‘p;n‘sed‘n;d‘sed-n‘$!N;P‘sed-n‘1~2p‘awk‘i=!i‘awk‘NR%2‘2、打印文件偶数行sed-n‘n;p‘sed-n‘0~2p‘awk‘!(i=!i)‘awk‘!(NR%2)‘3、打印文件倒数第二行sed-n‘N;$P;D‘awk‘{a[NR]=$0}END{printa[NR-1]}‘awk‘{a=b;b=$0}END{prin 查看详情

sed&awk笔记之awk

Awk是什么?Awk、sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备这个功用。sed是一种非交互式且面向字符... 查看详情

unix&linux的文本处理工具--grep,sed&awk

...时脑中闪过的大概是铺天盖地baidu,google出来的冗余的各类使用介绍,老生常谈希望能让大家对这三个文本工具有新的理解。grep不做过多的介绍,打印出匹配的行,着重点在于输出结果并不对文本本身做修改。有个关于grep的小故... 查看详情

awk 和 sed 文本操作(从特定组中提取大多数负值)

】awk和sed文本操作(从特定组中提取大多数负值)【英文标题】:Awk&sedtextmanipulation(extractmostnegativevaluefromspecificgroup)【发布时间】:2012-09-2318:35:17【问题描述】:我确实有需要在awk、sed和shell中解决的文本操作问题。我的文字... 查看详情

l-1-23awk&sed

[awk]awk<option>'<PATTERN>{<action>}'<filename>[<filename2>...]  //文本处理工具比如:df-Ph|awk'{print$1,$3}'//awk中大括号中应该用双引号awk会去分割每行并成分为字段,如:thisisa&nbs 查看详情

Bash & awk:尝试在 awk 中使用 bash 脚本参数时出现分段错误

】Bash&awk:尝试在awk中使用bash脚本参数时出现分段错误【英文标题】:Bash&awk:Segmentationfaultwhiletryingtousebashscriptarguementinawk【发布时间】:2021-12-2607:51:03【问题描述】:我正在尝试编写一个脚本来使用awk在两个时间戳之间提... 查看详情

sed&&awk第二章runsed代码理解

#!/bin/sh2forx3do4echo"editing$x:c"5#iftest"$x"=sedscr;then6#echo"noteditingsedscript!"7if["$x"="sedscr"];then8echo"binoteditingsedscript!"9eliftest-s$x;then10echo"xexist"11sed-fsedscr$x>/tmp/$x$$ 查看详情

awk&sed(代码片段)

...他语句数组应用数组的定义数组相关函数二维、多维数组使用内置函数算术函数字符串函数一般函数时间函数linuxawk命令详解sed入门详解教程一、写在前边二、基本正则表达式三、扩展正则表达式四、正则表达式的分类和应用五... 查看详情

使用 awk 或 sed 提取文本

】使用awk或sed提取文本【英文标题】:Extracttextwithawkorsed【发布时间】:2020-09-2621:44:21【问题描述】:我想从下面提取和删除一些文本[root@test]#du-k./[a-zA-Z0-9]--max-depth=1|sort-hr之前7789696./b/bklee946792./a796588./b/bluecyn477860./b/bborikun473652./... 查看详情

使用 awk 或 sed 从 ifconfig 解析数据?

】使用awk或sed从ifconfig解析数据?【英文标题】:Parsingdatafromifconfigwithawkorsed?【发布时间】:2012-04-1603:25:41【问题描述】:我正在尝试使用sed解析ifconfig输出中的一些数据,但我无法正确执行。我希望该命令仅提取我所追求的数... 查看详情

在 bash/sed/awk 中提取文件的最后一个单词

...print$NF\'file【讨论】:【参考方案2】:已更新。如果您想使用awk 查看详情

使用 bash 命令 awk sed 等从脚本中提取参数字段

】使用bash命令awksed等从脚本中提取参数字段【英文标题】:Extractargumentfieldsfromascriptusingbashcommandsawksedetc【发布时间】:2022-01-1315:32:20【问题描述】:我正在尝试从函数参数中使用的各种脚本中提取所有参数。我有用于查找参数... 查看详情

使用 sed 连接 xml 标签 [重复]

】使用sed连接xml标签[重复]【英文标题】:Usesedtoconcatenatexmltags[duplicate]【发布时间】:2021-12-1118:02:41【问题描述】:我正在尝试从以下xml标记中提取和连接&lt;id&gt;和&lt;name&gt;的值<applications><application><id>... 查看详情

匹配文件中的字符串并使用 sed 或 awk 打印整个值

】匹配文件中的字符串并使用sed或awk打印整个值【英文标题】:Matchastringinafileandprintentirevalueusingsedorawk【发布时间】:2015-03-2709:35:07【问题描述】:我正在尝试提取与字符串关联的值,但需要一种最佳方式。name=sandeeplogin_name=sn00... 查看详情

awk“for”语句中的“&&”

】awk“for”语句中的“&&”【英文标题】:"&&"inawk"for"statement【发布时间】:2015-07-2404:07:16【问题描述】:awk-F\'\\t\'\'BEGINOFS="\\t"x[NR]=$1;y[NR]=$2ENDfor(m=1;m<=NR;m++)for(n=m+1;n<=NR&&x[m]==x[ 查看详情

如何在 SED 或 AWK 的行中添加双引号?

】如何在SED或AWK的行中添加双引号?【英文标题】:HowtoadddoublequotestoalinewithSEDorAWK?【发布时间】:2012-06-0101:14:46【问题描述】:我有以下单词列表:name,id,3我需要像这样双引号:"name,id,3"我试过sed\'s/.*/\\"&amp;\\"/g\',得... 查看详情

不在 AWK 中的类似数据库中

】不在AWK中的类似数据库中【英文标题】:NotInlikedatabaseinAWK【发布时间】:2018-06-0100:32:03【问题描述】:如何简化!=语句。我有很多这样的价值观if(charNr%2==0&&newChar!=""&&newChar!="0"&&newChar!="1"&&newChar!="2"&&a... 查看详情