Sed 实记 · laoless‘s Blog

sed编辑命令

p 打印匹配行
= 打印文件行号
a 在定位行之后追加文本
i 在定位行之前插入文本
d 删除定位行
c 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件读取文本
w 将文本写入到一个文件
y 变换字符,类似替换
q 第一个模式匹配完成后退出
l 显示与八进制ASCII码等价的控制字符
{} 在定位行执行的命令组
n 读取下一个输入行,用下一个命令处理新的行
h 将模式缓冲区的文本复制到保持缓冲区
H 将模式缓冲区的文本追加到保持缓冲区
x 互换模式缓冲区和保持缓冲区的内容
g 将保持缓冲区的内容复制到模式缓冲区
G 将保持缓冲区你内容追加到模式缓冲区
g 替换文本全部
p 与n选项结合只打印替换行
w 文件名 输出定向到一个文件

Eg:

  • -n打印文件第一行(不加选项,还会打印全部内容)

    12
    sed -n '1p' inputsed -n '1,3p' input
  • ’=‘只打印对应内容的行号
    1
    sed -n '/string/=' input
  • -e 打印查询字符并显示行号
    1
    sed -e '/string/=' -e '/string/p' input

    等价于sed ‘/string/{=;p}’ input`

  • a在指定内容后追加
    1
    sed '/string/aappend a new line.' input
  • 在文件最后一行追加
    1
    大专栏  Sed 实记 · laoless‘s Blog"code">

    sed '$'astring input
  • 替换文本
    123
    sed -n '/string/cint' inputsed -n 's/string/int/2g' input		sed -n '/string/s#string#int#g'	#替换所有匹配到的字符串

    错误用法(-ni选项不能连用)

    12
    sed -ni '/string/cint/p' php.inised -ni 's/string/int/p' php.ini
  • 删除最后一行和最后一行
    1
    sed -e '$'d  -e '1'd input
  • 只打印替换行
    1
    sed -n 's/string/int/p' input
  • 分别替换第n次匹配
    1
    sed -n 's/string/np' input
  • 显示控制字符(ASCII)
    1
    sed -n '1,$'l input
  • 处理匹配行的下一行
    1
    sed '/string/{n;s/cf/lol/;} input
  • 在指定字符串后/前添加内容
    12
    sed -i 's/index.html/& index.php /' httpd.confsed -i 's/index.html/index.php &/' httpd.conf

    &就代表着指定的字符串位置

原文地址:https://www.cnblogs.com/lijianming180/p/12268148.html

时间: 2024-08-02 09:07:17

Sed 实记 · laoless‘s Blog的相关文章

一次基于ssh的sftp服务器被攻击实记

一次基于ssh的sftp服务器被攻击实记 前段时间12月分左右,公司需要搭建了台sftp服务器,当时想只是传下文件,何况我这还是基于SSH的SSL加密的sftp,也没有太再次安全问题,结果这个月每天晚上有人在暴力攻击,安装设置我以前的博文中有写到,这里记录下被攻击,以及防攻击的实录.(centos6.X) 查看ssh登录日志 分析日志 防攻击措施 自己写了个脚本 查看日志 ssh 登录日志一般在 /var/log/secure,有些linux版本可能再/var/log/messages,我们只要

编译安装MySQL实记

版本号:5.1.72OS:RHEL6.5安装方式:源码编译安装过程:1. 访问http://www.mysql.com/downloads/,选择MySQL Community Server,Select Platform中选择source code,下载Generic Linux下的mysql-5.1.72.tar.gz文件.2. 上传mysql-5.1.72.tar.gz到服务器,解压.3. 进入解压得到的目录里,在该路径下运行以下命令: ./configure --prefix=/usr/

grunt 入门实践实记

在Javascript的 开发过程中,经常会遇到一些重复性的任务,比如合并文件.压缩代码.检查语法错误.将Sass代码转成CSS代码等等.通 常,我们需要使用不同的工具,来完成不同的任务,既重复劳动又非常耗时.Grunt就是为了解决这个问题而发明的工具,可以帮助我们自动管理和运行各种任务. sudo npm install grunt-cli -g //grunt-cli表示安装的是grunt的命令行界面,参数g表示全局安装. npm install //这种方法是针对已有package.jso

机器学习实记(三)模型误差的来源

一.写在前面 本节所讲的内容主要是讨论如何进一步提高通过机器学习获得fbest的准确度使其更进一步接近ftrue,为了解决这个问题我们必须先明确我们学习得到的fbest的误差来自于哪里.这里先提一下误差的主要两个来源分别是bias和variance,即偏差和方差,换句话说当你想进一步提高你模型的精确度的时候你可以分析你所设计模型的误差是主要来自bias还是variance,然后有针对的去改进来进一步的提高模型的精度. 二.bias和variance 那么究竟什么是bias什么是variance?

EJB组件开发实记(1)

安装JBoss或者Wildfly jdk1.4以上. Eclipes安装插件 JBoss Tools: eclipes Jee photon 在eclipes 内部点击 >>Windows->Preferences ->Server -> Runtime Environment 点击add 点击next,Finish Eclipes内打开Server窗口. 左键运行. 在浏览器打开http://localhost:8080/ JBoss配置成功. 原文地址:https://w

Cache命中:性能优化实记之Cache命中对CPU运行性能的影响

情景描述 先上代码: code1: void Graph::shufle(int cnt) { for (int i = 1; i<cnt; i++) { unsigned int swid = fastrand() % (cnt-i) ; std::swap(iCons[cnt - i], iCons[swid]); std::swap(jCons[cnt - i], jCons[swid]); std::swap(dCons[cnt - i], dCons[swid]); std::swap

HardWareHome硬件之家论坛开发实记(1)--配置云

1. 购买云服务器 因为学生优惠,所以选择了华为云的云服务器ECS和云数据库RDS. 配置分别为: ECS:至强 单核.2GB DDR4.40GB 高I/O HDD.CentOS 7.6 64bit RDS:至强 双核.4GB DDR4.100GB 高I/O HDD.MySQL 5.7.27 每个都是99元1年,甚是合算. 2. 配置云 由于购买的是两个服务,所以需要将两个服务放置在同一个虚拟私有云VPC下,才能互通. 而每个服务都需要配置自己的安全组策略,下面配置安全组策略. 打开控制台:ht

2.2 linux sed命令详解

简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. sed使用参数 [[email protected] ~]# sed [-nefr] [动作] 选项与参数

[转载]sed实现直接修改文件内容

sed实现直接修改文件内容 sed是实现对流的编辑.通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件.但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然后再覆盖原文件的办法显得很麻烦.其实很简单,只需要一个 -i 参数就可以了.比如,我想替换文件中的 properties 为 property ,可以使用 sed  's/properties/property/g'  build.xml这种方式,其实并没有修改build.xml文件的内