可以做ppt的网站或软件,做网站要怎么找单,网络优化的内容包括哪些方面,房地产网站开发文档文章目录 1. 基本功能2.sed替换ssed配合grep和管道操作符的例子 3.sed中的删除和添加3.1 d删除3.2 a i添加添加多行 4.sed行替换替换包含某字符的行 5.单字符替换 y6. p打印命令打印含有目标字符的行sed中包含多个指令#xff0c;使用{} 7.sed w 写入文件8.sed r 读取文件9.se… 文章目录 1. 基本功能2.sed替换ssed配合grep和管道操作符的例子 3.sed中的删除和添加3.1 d删除3.2 a i添加添加多行 4.sed行替换替换包含某字符的行 5.单字符替换 y6. p打印命令打印含有目标字符的行sed中包含多个指令使用{} 7.sed w 写入文件8.sed r 读取文件9.sed q 退出脚本——及时终止命令执行10.综合实例批量指令sed指令 1. 基本功能
对文本中的某一行做增删改查
sed [optionsladdrcommand[flags] filename
//addr是指令操作的行不写默认是全部
//command是操作指令添加、修改等
例如sed -e 1s/test/trial/g data.txt
1为地址表示操作data.txt的第一行
s为cmd表示替换**命令选项**
-e:直接在vim的命令行模式上进行sed动作编辑此为默认选项缺省也可以。但是文件本身不被修改只是会将执行后的结果打印;
-f:将sed的动作写在一个文件内用-f filename执行filename内的sed动作;
-i:直接修改文件内容;
-n:只打印模式匹配的行;
-r:支持扩展表达式:**sed常用内部命令**
a 在匹配后面添加
i 在匹配前面添加
p 打印
d 删除
S 替换
c 更改
y 转换**flags**
相关描述参考下图2.sed替换s
[address]s/pattern/replacement/flagssed指令只有-i下才会直接修改文件flag标记中的n表示将第几个目标字符做替换如果在某一行中只有1个目标字符则当n1时替换不生效。如下图所示使用p这个flag的时候必须配合-n这样会只打印匹配上的行。通常用于原文件行数过多只想看操作的行的时候。 使用w flag可以将匹配上的行输出到一个文件如下图所示输出到了data1.txt 使用反斜线对特殊字符做转义
sed配合grep和管道操作符的例子 3.sed中的删除和添加
3.1 d删除
sed d data.txt
sed d删除
-所有
sed 3d data.txt
- 3行
sed1,3d data.txt
-1到3行
-sed 2,4d data.txt
-2到4行3.2 a i添加
sed a和i添加
sed 3i This is an inserted line. data.txt
//在第3行前面添加sed 3a This is an appended line. data.txt
//在第3行后面添加添加多行
sed 1i This is one line of new text.\
This is another line of new text. data.txt4.sed行替换
sed c行替换
sed 3c This is a changed line of text. data.txt
//无视第三行的内容直接进行行替换源文件没有被替换只是打印出来替换结果了。 替换包含某字符的行
sed /number 3/c\This is a changed line of text. data.txt上面将一个命令拆多行写了下面是一行完成的。都是将含有number 3字符的行进行整行替换
5.单字符替换 y
sed y转换脚本
单个字符一对一替换
sed y/123/789/ data.txt
将123替换为789虽然123写在了一起但是也是按照单个字符处理的不是按照123三个字符来理解。 继续添加一个l也是一样不论在什么位置都会进行单个字符替换
echo This 1 is a test of 1 try. | sed y/123/456/
This 4 is a test of 4 try6. p打印命令
sed -n /number 3/p data.txt
用-n选项和p命令配合使用我们可以禁止输出其他行只打印包含匹配文本模式的行。 如果需要在
修改之前查看行也可以使用打印命令比如与替换或修改命令一起使用。可以创建一个脚本在修改行之前显示该行
打印含有目标字符的行 sed中包含多个指令使用{}
sed -n /3/{
p
s/line/test/p} data.txt
This is line number 3.
This is test number 3.
查找包含数字3的行然后执行两条命令。首先脚本用p命令来打印出原始行;然后它用s命令替换文本并用p标记打印出替换结果。输出同时显示了原来的行文本和新的行文本7.sed w 写入文件
sed 1,2w test.txt data.txt
//将data.txt中的1~2行写入test.txt
//上述指令没有-n还是会打印data.txt的内容sed -n /demo/w demo.txt data.txt
//将包含demo的行打印到demo.txt-n加上就不会打印无关行了。8.sed r 读取文件
sed 3r data1.txt data.txt
sed 命令会将 filename 文件中的内容插入到 address 指定行的后面sed $r data1.txt data.txt 插入到文件末尾9.sed q 退出脚本——及时终止命令执行
sed 2q test.txt
使用q只打印前2行
sed /number/{s/number/num/;q} data.txt
//包含多个命令用{}多个命令之间使用分隔
//带q则执行完一次替换后指令就终止不带则会针对全部行做替换10.综合实例
sed 1... data.txt
//直接指定行号
sed 1,3... data.txt
//指定行的范围
sed 1,$... data.txt
//从某行开始到最后一行
sed /zyr/s/bash/csh/ /etc/passwd
//使用字符匹配找到包含zyr的行做替换//使用正则匹配做替换
sed {s/h[0-9]/\\/1; s/h[0-9]/\\/2} test.txt
//此处的在sed语法中表示匹配上的字符本身
//{}表示对一行内容做多个操作多个操作之间使用;分割为了简化指令可以将操作对象往前提这样只写一次就行 其实sed的指令在vim中都可以使用命令模式直接敲然后回车执行但是不利用批量指令。 这时就可以创建一个sed的脚本来操作目标文本
批量指令sed指令
创建sed.sh将指令写入使用-f调用指令脚本 下图为sed.sh脚本中的内容这样可以分行写很清晰。