sed文本编辑器(vim,notepad)非交互式的文本编辑器
sed是逐行处理编辑器
    sed [选项] ‘条件指令'  文件   #没有条件指令时,默认对全文所有进行修改
sed的所有操作默认时在内存条里面进行的,对源文件(硬盘里)没有影响
选项:
-n           屏蔽默认输出
-r           支持扩展正则
-i           改变源文件内容
条件:
    1、行号 3d 8d 36d
    2、/正则/
    3、没有条件 (默认所有)

指令:
增a、删d、改s、查p

# sed -n '/root/p' /etc/passwd    #将root的行找到,打印出来

sed默认会显示全文,-n屏蔽默认输出

# sed '3p' /etc/passwd         #这条命令会将sed第3行多打印一遍
# sed -n '3p' /etc/passwd      #sed默认会显示全文,加-n会屏蔽默认输出
# sed -n '3p;5p;8p' /etc/passwd   #打印多行,3行、5行、8行
# sed -n '3,8p' /etc/passwd       #打印多行3-8行

d删除
# sed 'd' /etc/passwd           #删掉该文件,在内存条里面,对源文件无影响
# sed -i 'd' /etc/passwd           #删掉该文件,在硬盘里,改变源文件内容

s替换、删除(s的替换符号,可以使用任意字符)
# sed 's/old/new/' 文件(第一个替换)
# sed 's/old/new/g' 文件(所有替换)  
# sed 's/old/new/2' 文件(每一行的第二个替换1)
# sed '3s/old/new/2' 文件(第三行的第二个替换)

# sed 's/old//2' 文件(每一行的第二个删除)
 
# sed 's#/bin/bash#/sbin/sh#' 文件(每一行的第二个) s符号可以使用别的字符
# sed 's,/bin/bash,/sbin/sh,'    s替换符号可以是“,”但是3个要保持一致
# sed 's?/bin/bash?/sbin/sh?'     s替换符号可以是“?”但是3个要保持一致
#########################################################################
\(\)      保留(复制)
()          保留(复制)
\1        将保留的第一个复制出来

vim a.txt
    abcdefabcdefabcdefabcdef
grep "(abcdef)\1\1\1" a.txt  将()里面的保留内容复制粘贴3遍  所有的字母都变红

vim a.txt
    abcdefabcdeffqwerfqwer
grep "(abcdef)\1(fqwer)\2" a.txt  将第一()里面的保留内容复制粘贴1遍;将第二()里面的保留内容复制粘贴1遍  所有字母都变红

vim a.txt
hello the world
ni hao ya
san li tun jian
把第一个字母和最后一个字母对调
sed -r 's/^(.)(.*)(.)$/\3\2\1/' a.txt
把第二个字母和倒数第二个字母对调
sed -r 's/^(.)(.)(.*)(.)(.)$/\1\4\3\2\5/' a.txt

##########################################################################
# sed -n 'p;n' 文件      打印奇数行
# sed -n 'n;p' 文件      打印偶数行

wc -l /etc/passwd     统计行数
sed -n '$=' /etc/passwd  统计行数

i      行前插入文本
a      行后插入文本
c      替换当前行      #s替换单词,c替换行
# sed '1c baidu.com' /etc/hostname  将主机名改成baidu.com
# sed '2c baidu.com' a.txt     将第二行内容替换成baidu.com
# sed '2c XX\nYY\nZZ' a.txt    将第二行内容替换成XX,并且插入行YY、行ZZ,\n相当于“回车”

r、w     
vim a.txt    
:r  /etc/passwd   在文本文件中读入这个文件
:w  /tt.txt       另存为这个文件

#sed '1r /etc/hostname' a.txt  在第一行后面读入这个文件,不加1的话,每一行都会读入一遍/etc/passwd
#sed 'w /qq.txt' a.txt         将所有的行都保存为/qq.txt
#sed '2w /qq.txt' a.txt        将第二行都保存为/qq.txt

H: 将文件内容追加放入缓存,不会覆盖掉缓存里面的"回车"
G: 将内存缓存追加放入文件,不会覆盖掉文件里面已执行的行内容
h: 将文件内容覆盖放入缓存 ,会覆盖掉缓存里面的"回车"
g: 将内存缓存覆盖放入文件,会覆盖掉文件里面已执行的行内容

vim a.txt
1
2
3
4
5
6
# sed '2H;5G' /opt/a.txt
1
2
3
4
5

2
6

# sed '2h;5g' /opt/a.txt
1
2
3
4
2
6

Shell5的更多相关文章

  1. 自学Linux Shell5.1-shell父子关系

    点击返回 自学Linux命令行与Shell脚本之路 5.1-shell父子关系 1 shell常见的种类  bash是Linux标准默认的Shell,是BunrneAgain Shell的缩写,内部命 ...

  2. 自学Linux Shell5.2-shell内建命令history alias

    点击返回 自学Linux命令行与Shell脚本之路 5.2-shell内建命令history alias 外部命令:有时称为文件系统命令,是存在于bash shell之外的程序,通常位于/bin./u ...

  3. 20165230 Exp3 免杀原理与实践

    目录 1.实验内容 2.基础问题回答 3.实验内容 任务一:正确使用免杀工具或技巧 使用msf编码器,msfvenom生成如jar之类的其他文件 使用veil-evasion 自己利用shellcod ...

  4. 自学Linux命令行与Shell脚本之路

    自学Linux命令行与Shell脚本之路[第一回]:初识Linux   1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3  ...

  5. [canvas]空战游戏1.18

    空战游戏到今天可以玩了,玩法还是方向键(或AWSD)控制飞机位置,空格键开炮,吃五星升级,被敌机打中降级直到击落,与敌机相撞则GG. 点此下载程序1.16版,用CHrome打开index.html试玩 ...

  6. [Canvas]空战游戏 已经可以玩了 1.13Playable

    空战游戏做到这里,己方运动,己方发射子弹,敌方运动,敌方发射子弹,子弹与飞机碰撞,飞机与飞机碰撞都已经具备了,换言之已经可以玩了. 还需要一个奖励升级系统,在上面显示击落敌机数量等,还有己方不幸被击落 ...

  7. [Canvas]空战游戏进阶 增加己方子弹管理类

    点此下载源码,可用Chrome打开观看. 图例: 代码: <!DOCTYPE html> <html lang="utf-8"> <meta http ...

  8. [Canvas]空战游戏进阶 增加爆炸管理类

    点此下载源码,欲观看效果请用Chrome打开index.html 图例: 源码: <!DOCTYPE html> <html lang="utf-8"> & ...

  9. [Canvas]空战游戏进阶 增加发射子弹 敌机中弹爆炸功能

    点此下载源码. 图例: 源码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv=" ...

随机推荐

  1. NVMe SSD是什么?

    https://blog.51cto.com/alanwu/1766945 一直对闪存存储关注的朋友对NVMe SSD一定非常熟悉,NVMe SSD是现如今性能最好的存储盘.这种高性能盘在互联网领域已 ...

  2. UNP学习 非阻塞I/O

    缺省状态下,套接口时阻塞方式的.这意味着当一个套接口调用不能立即完成时,进程进入睡眠状态,等待操作完成.我们将可能阻塞的套接口调用分成四种. 1.输入操作:read.readv.recv.recvfr ...

  3. 使用node-static运行vue打包文件dist

    vue打包后的文件dist,如果想上线之前查看效果,方法如下: npm install -g node-static 进入到dist文件夹,运行static命令 打开上面地址

  4. 探索Redis设计与实现9:数据库redisDb与键过期删除策略

    本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...

  5. (转)Ubuntu 12.04 下安装 Eclipse

    转:http://hi.baidu.com/sanwer/item/e5328bcdf2beaa27a1b50a0f 方法一:(缺点是安装时附加openjdk等大量程序并无法去除,优点是安装简单) $ ...

  6. 201⑨湘潭邀请赛 Chika and Friendly Pairs(HDU6534)

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6534 题意: 给你一个数组,对于第i个数来说,如果存在一个位置j,使得j>i并且a[j]-k&l ...

  7. HDU6655 Just Repeat(2019杭电多校J题)

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6655 简单博弈问题,A,B手里各有n,m张牌,牌有颜色,两人轮流出牌(A先出),一个人只能打出对放未打 ...

  8. Python数字类型及数学运算

    1.数字类型分为int.float和complex,complex暂时用不到,int和float的相关运算和类型转换如下: >>> 59+12 71 >>> 59- ...

  9. s-cms学校建站重装漏洞

    文件位置 ./install/index.php 影响版本 PHP V5.0 过程 通过获取GET请求判断是安装还是结束安装 安装步骤1 安装步骤2 安装步骤3 安装步骤4 解释 安装步骤1-3都没有 ...

  10. bootstrap Grid布局(网格布局)

    基本网络结构 <div class="container"> <div class="row"> <div class=" ...