awkshtest.sh 内容如下:
#!/bin/sh
awk -F, 'BEGIN{OFS=",";print "......解析文件开始........"} END{print "......解析文件结束......"}
ARGIND==1{a[$1]=$1} #将t_mobile.txt漫游用户存入数组 a中
ARGIND==2{b[$1]=$1} #将t_plan_user.txt漫游用户存入数组b中
ARGIND>2{
if(0 == (match(tolower($1),/.*(\.gif|\.png|\.jpeg|\.bmp|\.def|\.jpg|\.css|\.ico|\.cur|\.swf|\.js|\.txt|\.avi|\.xml|\.zip|\.cab|\.crl|\.mp3|\.tpt|\.fcg|\.lrc|\.action|\.rar|\.m4a|\.idx|\.exe|\.dll|\.ini|\.vbs|\.doc).*/))){
#print "......清洗图片完成......";
if(substr($1,1,7) in a){
#print "......清洗漫游用户完成......";
if($1 not in b){
#print "......清洗无线上网卡用户完成......";
if($5==200 || $5==201 || $5==204 || $5==205){
#print "......清洗公有协议完成......";
#将URL地址按 / 折分,并存入url数组中
split($25,url,"/");
if(length(url) >4){
if(url[1]=="http:" || url[1]=="HTTP:"){
#print "......解析URL 带 HTTP头.....";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],substr($25,8,length($25)-8) >> "page.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],substr($25,length(url[3])+8,length($25)-length(url[3])+8) >> "value.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],url[4] >> "leve_1.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],url[5] >> "leve_2.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],url[3] >> "domain.txt";
}else{
#print "......解析URL 不带 HTTP头......";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],$25 >> "page.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],substr($25,length(url[1]),length($25)-length(url[1])) >> "value.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],url[1] >> "domain.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],url[2] >> "leve_1.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],url[3] >> "leve_2.txt";
}
}
}
}
}
}
}' t_mobile.txt t_plan_user.txt *.txt
三个以上文件处理,t_mobile.txt 需要过滤的数据1,t_plan_user.txt 需要过滤的数据2,*.txt具体要处理的数据
其中数据1和数据2的格式为:
数据1:
1389574671*
1389574671*
1389574671*
1389574671*
1389574671*
数据2:
1389574*
1389574*
1389574*
1389574*
其中*带表具体数字
ARGIND=1 当读取第一个文件时,将第一个文件中的 $1列,存入数据 a 中
ARGIND=2 当读取第二个文件时,将第二个文件中的 $1列,存入数据 b 中
ARGIND>2 当处理文件从第三个开始,开始比较第三个以后的文件中与 a,b数组中的数据信息
分享到:
相关推荐
**awk** 是一种强大的文本处理工具,常用于Linux/Unix系统中进行数据提取、分析及格式化工作。其名称来源于三位创建者:Alfred Aho、Brian Kernighan 和 Peter Weinberger 的名字首字母缩写。 ##### 基本命令格式:...
* AWK 可以以命令行方式、shell 脚本方式和将所有的 AWK 命令插入一个单独文件然后调用三种方式来使用。 * AWK 工作流程是读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域。
3. **调用文件方式**:将awk命令放入文件并通过`-f`选项调用。 ```sh awk -f print.awk input-file ``` #### 六、保存awk输出 - **输出重定向**:使用`>`重定向输出到文件。 ```sh awk '{print $0}' chr10....
深入研究`owo.sh`,你可能会发现它包含了各种Bash脚本技巧,如变量处理、条件语句、循环结构、函数定义、错误处理等。它可能还使用了环境变量、配置文件来个性化设置,或者与其他系统工具(如curl、wget、sed、awk等...
AWK(其名字源自三位创造者的首字母缩写)是一种专门设计用于文本和信息处理的编程语言。它允许用户以极其简练的代码实现对文本文件内容的修改、对比、抽取等功能,相比传统高级语言如C或Pascal,使用AWK处理数据...
1. `comm_func.sh`: 这个文件很可能包含了通用函数,供其他脚本调用。在Shell脚本中,定义函数可以提高代码复用性,减少重复代码。学习如何定义和调用Shell函数是编写高效脚本的基础。 2. `get_soft_info.sh`: 这个...
在实际应用中,可以通过命令行调用这些脚本,结合其他Linux工具(如grep、awk等)进行进一步的数据分析和处理。例如,可以将"show-busy-java-threads"的输出与性能监控数据相结合,找出性能瓶颈;"show-duplicate-...
4. **GetProcDes.sh**:此脚本可能是用来获取进程描述信息的,如进程名称、所属用户、运行时间等。它可能使用`ps`命令的 `-o` 参数来定制输出字段,通过`grep`查找特定进程,为故障排查提供信息。 5. **GetProcPid....
调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊字符 4. 变量和参数的介绍 4.1. 变量替换 4.2. 变量赋值 4.3. Bash变量是不分类型的 4.4. 特殊的变量类型 5. 引用(翻译的可能有问题,特指引号) ...
`cat`、`echo`、`sed`、`awk`、`grep`等命令用于处理文本文件,而`cp`、`mv`、`rm`则用于文件的移动和删除。 6. **用户接口**:如teacher_interface.sh和student_interface.sh,这些脚本提供了一个用户交互的界面,...
3. 使用`sed`或`awk`命令修改配置文件,将公司的IP地址、子网掩码、默认网关和DNS服务器信息写入相应位置。 4. 重启网络服务,如`service networking restart`或`systemctl restart networking`,使新的IP配置生效。...
例如,`add.sh`可能需要追加新的用户信息到`passwd`文件,而`delete.sh`则可能需要删除指定用户的信息。 6. **文本内容分析**: 脚本可能需要解析`passwd`文件中的信息,比如提取用户名和用户ID。这通常涉及使用...
在本场景中,shell脚本将作为主框架,用于调用awk和sed命令,并处理输入输出。 2. **Awk**:这是一个强大的文本分析工具,能够处理每一行的数据并根据模式进行操作。在JSON文件中,awk可以用来定位包含特定字段的行...
2. **递归处理子目录**:如果读取到的是子目录,脚本可能会调用自身来处理子目录中的文件,实现深度优先或广度优先遍历。 3. **获取文件信息**:使用`stat()`函数获取文件的元数据,如文件路径、大小、修改时间...
文件信息:对包含在变量中的文件列表进行操作 10-4. 在for 循环中操作文件 10-5. 在for 循环中省略[list] 10-6. 使用命令替换来产生for 循环的[list] 10-7. 对于二进制文件的一个grep 替换 10-8. 列出系统上的所有...
这些工具可以帮助我们在日志文件中查找信息,处理文本数据,以及编辑和调试脚本。在深入学习Linux核心的同时,我们还需要关注其安全模型,如权限管理(用户、组和文件权限)、防火墙规则(iptables)以及安全增强...
8. `flmObf.sh`:这是混淆工具的主脚本,可能包含了调用上述所有脚本和执行混淆过程的逻辑。 使用这个开源工具时,开发者需要按照`flmObf.sh`脚本的说明进行操作,提供SWF文件作为输入,并配置混淆规则。混淆完成后...
- `start.sh` 脚本在`prepare.sh`完成准备工作后被调用,它的主要任务是清理日志文件并准备开始数据分析。 2. **环境构架**: - 使用Nginx作为Web服务器,并且与WAF集成。当需要更换WAF版本时,会通过RPM包管理器...
例如,使用`awk`或`sed`命令来解析表达式,或者通过多次调用来处理带有括号的运算。 `readme.txt`文件通常包含有关项目的信息,如作者、许可证、使用方法等。在这个案例中,它可能详细解释了计算器脚本的工作原理,...