Shell5
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的更多相关文章
- 自学Linux Shell5.1-shell父子关系
点击返回 自学Linux命令行与Shell脚本之路 5.1-shell父子关系 1 shell常见的种类 bash是Linux标准默认的Shell,是BunrneAgain Shell的缩写,内部命 ...
- 自学Linux Shell5.2-shell内建命令history alias
点击返回 自学Linux命令行与Shell脚本之路 5.2-shell内建命令history alias 外部命令:有时称为文件系统命令,是存在于bash shell之外的程序,通常位于/bin./u ...
- 20165230 Exp3 免杀原理与实践
目录 1.实验内容 2.基础问题回答 3.实验内容 任务一:正确使用免杀工具或技巧 使用msf编码器,msfvenom生成如jar之类的其他文件 使用veil-evasion 自己利用shellcod ...
- 自学Linux命令行与Shell脚本之路
自学Linux命令行与Shell脚本之路[第一回]:初识Linux 1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3 ...
- [canvas]空战游戏1.18
空战游戏到今天可以玩了,玩法还是方向键(或AWSD)控制飞机位置,空格键开炮,吃五星升级,被敌机打中降级直到击落,与敌机相撞则GG. 点此下载程序1.16版,用CHrome打开index.html试玩 ...
- [Canvas]空战游戏 已经可以玩了 1.13Playable
空战游戏做到这里,己方运动,己方发射子弹,敌方运动,敌方发射子弹,子弹与飞机碰撞,飞机与飞机碰撞都已经具备了,换言之已经可以玩了. 还需要一个奖励升级系统,在上面显示击落敌机数量等,还有己方不幸被击落 ...
- [Canvas]空战游戏进阶 增加己方子弹管理类
点此下载源码,可用Chrome打开观看. 图例: 代码: <!DOCTYPE html> <html lang="utf-8"> <meta http ...
- [Canvas]空战游戏进阶 增加爆炸管理类
点此下载源码,欲观看效果请用Chrome打开index.html 图例: 源码: <!DOCTYPE html> <html lang="utf-8"> & ...
- [Canvas]空战游戏进阶 增加发射子弹 敌机中弹爆炸功能
点此下载源码. 图例: 源码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv=" ...
随机推荐
- 【dart学习】-- Dart之JSON
概述 现在很难想象移动应用程序不需要与后台交互或者存储结构化数据.现在开发,数据传输方式基本都是用JSON,在Flutter中是没有GSON/Jackson/Moshi这些库,因为这些库需要运行时反射 ...
- jdbc的连接数据库,使用PreparedStatement实现增删改查等接口
首先是连接,关闭资源等数据库操作 将连接数据库,关闭资源封装在JDBCUtils里 package jdbc.utils; import java.sql.Connection; import jav ...
- 分布式系统理论基础1: 一致性、2PC和3PC
本文转自 https://www.cnblogs.com/bangerlee/p/5268485.html 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到 ...
- 前端工程师技能图谱skill-map
# 前端工程师技能图谱 ## 浏览器 - IE6/7/8/9/10/11 (Trident) - Firefox (Gecko) - Chrome/Chromium (Blink) - Safari ...
- 基于Tomcat如何显示服务器上的图片或文件?
修改tomcat中conf文件夹下的server.xml文件,在 <Valve className="org.apache.catalina.valves.AccessLogValve ...
- ceph命令拷屏
常用命令ceph -w ceph df ceph features ceph fs ls ceph fs status ceph fsid ceph health ceph -s ceph statu ...
- 【计算机网络mooc】一、概述
1.网络概述: 网络分成两个层级,用交换机连接的是子网,用路由器连接的是互连网. 互联网Internet是一个特定的互连网internet 发展3阶段,第3阶段:ISP,互联网服务提供商,缴纳费用获得 ...
- 9. Jmeter-前置处理器
jmeter-前置处理器介绍与使用 JSR223 PreProcessor 用户参数 HTML链接解析器 HTTP URL 重写修饰符 JDBC PreProcessor RegEx User Par ...
- Rsync 实现服务器文件的同步——服务端的安装配置
一.安装rsync 直接使用yum命令进行安装即可. yum -y install rsync 二.配置文件 网上大多教程都说安装是默认没有配置文件的,但是经过我的尝试,yum安装下默认是有配置文件的 ...
- upc组队赛6 Progressive Scramble【模拟】
Progressive Scramble 题目描述 You are a member of a naive spy agency. For secure communication,members o ...