《linux 文本处理》- sed/awk
一:sed 行文本处理
- 基本概念
- sed 用于处理单行文本
- sed 命令本身不会修改源文件,只是处理文件"流"的内容。
- 如果需要修改源文件,请使用 -i 或者 重定向 文件。
- 使用场景
- 文件过大,编辑困难
- 有规律的修改大部分内容
- 修改
基本语法 sed [operation] file
- s 查找替换
sed -e ’s/待修改内容/修改内容/g' demo.txt g 代表全局替换,如果不使用 g ,则只会修改第一个发现的e 代表简单输出文件,如果需要修改源文件,请使用 -i
- s 查找替换
- y 字符转换
sed -e 'y/待修改字符/修改字符/' demo.txt e 代表简单输出文件,如果需要修改源文件,请使用 -i 注意: 转换字符长度要和被转换长度相同 例如: sed -i 'y/56/xf/' demo.txt 5 转换 x, 6 转换 f
- y 字符转换
- 删除
基本语法 sed -i '行' 文件示例 删除 第一行 sed -i '1d' demo.txt 删除 第一行至第三行 sed -i ‘,3d’ demo.txt
- 插入
基本语法 sed -I ‘行 位置 内容' 文件示例: demo.txt 文件的 第二行之前插入一行,内容为 insert sed -i '2 i insert' demo.txt i 表示匹配行之前插入,a 匹配行之后插入
二:awk 列文本处理
- 简介
- awk 列文本处理
- 原理是将文本读出,进行域的切分,所以在 awk 中,文本是有域的概念的
- 输出指定 域 的内容
- 先看一条 nginx 日志
/Oct/::: +] 123.124.16.83 192.168.240.255
- 在 awk 中,默认是以 空格 来进行 域 的切分的,
- 先看一条 nginx 日志
按照切分逻辑 $ 123.124.16.83 $ - $ - $ [/Oct/::: .... SO $ 状态码
- 所以,按照域的切分规则,输出对应的内容
打印对应的 $awk {print $}' access_log 123.124.16.83
- 所以,按照域的切分规则,输出对应的内容
- 指定域的分隔符
- 当然,我们也可以使用 -F 来指定域的分割符,来进行域的切分
awk -F 'HTTP' '{print $1}' access_log123.124.16.83 - - [10/Oct/2018:10:24:56 +0800] "GET /static/favicon.ico
- 确定域个数
- 在上面的文本中,可能有多个域,可用通过 NF 变量来确定域的个数
awk '{print NF}' access_log
- 打印固定域
- 通过打印 NF 的值,来确定对应域的值
打印最后一个域的值 awk '{print $NF}' access_log 打印倒数第二个域的值 awk '{print $(NF - 1)}' access_log
《linux 文本处理》- sed/awk的更多相关文章
- Sed&awk笔记之sed篇
http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Ed ...
- linux sed awk seq 正则使用 截取字符 之技巧
[root@room9pc01 ~]# seq 5 1 2 3 4 5 [root@room9pc01 ~]# seq 2 5 2 3 4 5 seq 1 2 10 1 3 5 7 9 [root@d ...
- 1.Sed | Awk | Grep | Find
1.Sed | Awk | Grep | Find 可以参考的文档链接 CentOS7 查看 当前机器 已经启动的端口的Shell命令: netstat -lntup | awk -F' ' {'pr ...
- Sed&awk笔记之sed篇(转)
Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" strea ...
- [svc]linux正则实战(grep/sed/awk)
企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...
- linux三剑客grep|sed|awk实践
最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk
- Linux三剑客grep/sed/awk
grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...
- 【转帖】vim/sed/awk/grep等文件批处理总结
vim/sed/awk/grep等文件批处理总结 https://www.cnblogs.com/cangqiongbingchen/p/9760544.html Vim相关操作 1.基础 * 和 # ...
- sed & awk 概述
概述 一般情况下,从grep到sed和awk的学习过程是很自然的.sed和awk是一般用户.程序员和系统管理员们处理文本文件的有力工具. sed的名字来源于其功能,它是个字符流编辑器(stream e ...
- sed awk grep三剑客常用
sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...
随机推荐
- 3. RNN神经网络-LSTM模型结构
1. RNN神经网络模型原理 2. RNN神经网络模型的不同结构 3. RNN神经网络-LSTM模型结构 1. 前言 之前我们对RNN模型做了总结.由于RNN也有梯度消失的问题,因此很难处理长序列的数 ...
- java框架篇---hibernate(一对多)映射关系
一对多关系可以分为单向和双向. 一对多关系单向 单向就是只能从一方找到另一方,通常是从主控类找到拥有外键的类(表).比如一个母亲可以有多个孩子,并且孩子有母亲的主键作为外键.母亲与孩子的关系就是一对多 ...
- android——判断当前网络是否可用
http://www.cnblogs.com/codeworker/archive/2012/04/23/2467180.html //判断当前是否有网络连接 private boolean isCo ...
- 教你一招:使用最快速的方式激活windows10专业版
1.安装win10专业版 2.在桌面新建“文本文档.txt” 3.复制如下代码到新新建的“文本文档.txt”中 slmgr /ipk VK7JG-NPHTM-C97JM-9MPGT-3V66T slm ...
- Java 同时返回多个不同类型的方法
Java 同时返回多个不同类型的方法 2016年12月02日 16:05:07 FXBStudy 阅读数:10045 前言:虽然对于这种需求不常用,且比较冷门,但是还是有其存在的价值,再次做一下整 ...
- easyradius隆重发布ROS API计费接口,支持ROS 3.3以上版本,实现简单快捷的ROS宽带计费系统云端版
easyradius对接ROS也是使用的是ROS的api接口,即您要开启 /ip /service api服务,不了解api接口的,可以自己百度噢 开启API,就到easyradius配置通讯接口,具 ...
- bootstrap-select 多选下拉框使用教程
http://silviomoreto.github.io/bootstrap-select/ 一.使用bootstrap-select组件时,先引用下列文件 最后一个文件 defaults-zh_C ...
- [Laravel] 01 - Love beautiful code? We do too.
前言 一.良心资料 英文 Laravel 框架:https://laravel.com/ 教程:https://laracasts.com/series/ laravel-from-scratch-2 ...
- eclipse去掉所有断点 恢复到默认窗口
1.去掉所有断点 Window->Open Perspective->Debug默认是右上角的窗口中,切换到Breakpoints,如果里边有内容,那就是设置断点啦,点叉叉全部删掉就好了. ...
- LeetCode - 774. Minimize Max Distance to Gas Station
On a horizontal number line, we have gas stations at positions stations[0], stations[1], ..., statio ...