每天一个liunx命令3之awk实现文本文件的抓取
grep -h -s -E 'HUAWEI_900086000042331834|BAIDU_3266643378' /data/stat2/Log/LogStat_2017-05-17_000.log
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-s 不显示错误信息
-E 意思是条件中是一个正则表达式,上例中搜索包含HUAWEI_900086000042331834或BAIDU_3266643378的信息
=============================================================================
统计文件中的行数
awk 'END{ print NR }' /data/stat2/Log/LogStat_2017-05-17_000.log
打印每一行的第二和第三个字段
awk '{ print $2,$3 }' filename
awk -F "," '{OFS=",";if($2>1036) print $1,$2}' /data/stat2/Log/LogStat_2017-05-17_000.log
将源文件/data/stat2/Log/LogStat_2017-05-17_000.log按照 , 分割 当每一行第二个字段大于1036时,输出第一个字段,和第二个字段 输出时按照 , 分割
-F "," 将源文件按照 , 分割
{} 括号内多个命令按照 分号 分割
OFS="," 显示文件按照 , 分割 如果不写默认按照 空格 分割显示
if($2>1036) 判断函数 当第二个字段大于1036时,执行之后的语句
if(表达式) 语句1 else 语句2
或者 if(表达式) {语句1} else if(表达式) {语句2} else {语句3}
print $1,$2 print输出函数 默认输出在控制台
$n 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
$0 这个变量包含执行过程中当前行的文本内容。
=============================================================================
grep和awk整合
grep -h -s -E 'HUAWEI_900086000042331834|BAIDU_3266643378' /data/stat2/Log/test/LogStat_2017-05-17_000.log | awk -F "," '{OFS=",";if($2>1003) print $0}'
第一个grep的结果作为awk的分析文本 然后结果默认是显示在控制台
=============================================================================
如何将上述结果保存到一个文件
> 是把输出转向到指定的文件,如文件已存在的话也会重新写入,文件原内容不会保留
>> 是把输出附向到文件的后面,文件原内容会保留下来
grep -h -s -E 'HUAWEI_900086000042331834|BAIDU_3266643378' /data/stat2/Log/test/LogStat_2017-05-17_000.log | awk -F "," '{OFS=",";if($6<1002) print $0}' >> /data/stat2/Log/test/test.txt
每天一个liunx命令3之awk实现文本文件的抓取的更多相关文章
- 每天一个liunx命令10之nohup和xargs
1上传jar包到服务器/edgewalk/springboot/下 2编写启动脚本start.sh #!/bin/sh APP_HOME=/edgewalk/springboot cd $APP_HO ...
- 每天一个liunx命令4之 ps -ef ,ps -aux ,ps aux
1ps aux和ps –aux 请注意"ps -aux"不同于"ps aux".POSIX和UNIX的标准要求"ps -aux"打印用户名为 ...
- 每天一个liunx命令(ubuntu)
解压XXX.gz到另一个A文化夹: 1.切换到root权限 su 2.tar -zxvf XXX.gz -C A 注意: C要大些因为ubuntu区分大小写
- 每天一个liunx命令2之rz和sz命令
1安装命令工具包 yum install lrzsz 2sz命令发送文件到本地(send): sz filename 3rz命令本地上传文件到服务器(receive): rz 执行该命令后 ...
- 【Spider】使用命令行启动时,能正常抓取,但是在pycharm直接运行不能保存数据
通过cmd 运行命令scrapy crawl [爬虫名称]可以正常运行,并把数据保存到json文件和下载爬取的图片 但是在项目的spiders目录下的 firstTestSpider.py文件里添加: ...
- 一个我经常用到的采集网页数据抓取网页获取数据的PHP函数类
class get_c_str { var $str; var $start_str; var $end_str; var $start_pos; var $end_pos; var $c_str_l ...
- jmeter从上一个请求使用正则表达式抓取Set-Cookie值,在下一个请求中运用
工作中遇到的问题,登录请求,返回的Response Headers中有个参数Set-Cookie,需要抓取这个参数,运用到下一个请求中,见下图: 通过正则表达式抓取Set-Cookie的值,由于该值存 ...
- Linux查找命令:grep,awk,sed
grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...
- 50条常用liunx命令整理
1.pwd命令 :确定自己在那个目录 使用方法:在liunx命令输入框里面输入pwd,自动就会显示出自己现在在那个目录下 操作截图: 此时正处在root目录里面 2.cd命令:切换目录的意思 使用方法 ...
随机推荐
- Python全栈工程师 (类变量、方法、继承、覆盖)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 开局一张图 Python人工智能从入门到精通 补充: 实例方法都是操作实例对象 ...
- corosync.conf
##totem定义集群内各节点间是如何通信的,totem本是一种协议,专用于corosync专用于各节点间的协议,协议是有版本的 totem { ##版本号 version: ##安全认证on|off ...
- 数据结构与算法之顺序表C语言实现
顺序表等相关概念请自行查阅资料,这里主要是实现. 注: 1.顺序表C语言实现: 2.按较简单的方式实现,主要帮助理解,可在此基础上修改,更加完善: 3.提供几个简单函数,可自行添加功能: 4.可用C+ ...
- jsp页面中引入java类
<%@ page import="java.util.*" %>
- 文件i/o函数 open/close
一:open open函数可以打开或创建一个文件. #include <sys/types.h> #include <sys/stat.h> #include <fcnt ...
- CodeForces B. Creating the Contest
http://codeforces.com/contest/1029/problem/B You are given a problemset consisting of nn problems. T ...
- npm & npm config
npm command show npm config https://docs.npmjs.com/cli/config https://docs.npmjs.com/cli/ls https:// ...
- 深入Spring Boot:ClassLoader的继承关系和影响
前言 对spring boot本身启动原理的分析, Spring boot里的ClassLoader继承关系 可以运行下面提供的demo,分别在不同的场景下运行,可以知道不同场景下的Spring bo ...
- BZOJ1086 [SCOI2005]王室联邦 【dfs + 贪心】
题目 "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成 员来管理.他的国家有n个城市,编号为1..n.一些城市之间有道路相连,任意两 ...
- poj1679 次最小生成树 kruskal(暴力枚举)
Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Definit ...