linuxshell 系列 sed 命令基本用法
2016-03-15 14:59
337 查看
sed命令调用有三种方式,一种是直接通过shell命令行的模式调用,其他两种则是将sed命令写入脚本文件中,然后执行脚本文件来进行调用。
注:以下文章中filename表示sed命令操作的目标文件,scriptName表示插入sed命令的脚本文件
三种调用方式的命令格式归纳如下:
①.在Shell命令行(linux终端)输入命令直接调用sed,格式为:
sed [options] 'sed command' filename
②.将sed命令插入脚本文件后,通过sed命令进行调用,格式为:
sed [options] -f scriptName filename
//-f标示正在调用sed脚本文件,scriptName即脚本文件名称
③.将sed命令插入脚本文件后,给脚本文件添加可执行权限,然后直接执行,格式为:
chmod +x scriptName //给脚本文件添加可执行权限
./scriptName filename
需要注意的是③中脚本的编写与②中脚本的编写不一样,③中的sed脚本文件需要以sha-bang(#!)符号开头,sha-bang 后面是解析这个脚本的程序名,比如“/bin/sed”.
不管哪一种调用方式,如果没有指定输入文件(即目标文件filename),sed将从标准输入中接收输入。
sed常用的选项有三个:
-n 除sed命令打印需求外不打印数据到标准输出。
-e
用于执行多个sed命令,如果只执行一个sed命令,可以省略。
-f 表示正在调用sed脚本文件,example:
A)sed -n ‘/string/=’ filename//在filename中查找‘string’,然后打印出string所在行的行号。只需要打印行号,所以-e省略
B)sed -n -e '/string/=' -e '/string/p' filename //在filename中查找‘string’,然后打印出string所在行的行号和内容。因为打印行号和内容两命令,所以需要-e
sed命令通常由定为文本行和sed编辑命令两部分组成,sed编辑命令对定位文本行进行进行各种处理,sed提供以下两种方式定位文本:
①.使用行号,指定一行,或指定行号范围,example:
A)sed -n '1p' filename//定位到第一行并打印出来
B)sed -n ‘1,10p’ filename //定位到第1行到第10行范围的内容并打印出来
②.使用正则表达式
sed定位文本方法
sed编辑命令
注:以下文章中filename表示sed命令操作的目标文件,scriptName表示插入sed命令的脚本文件
三种调用方式的命令格式归纳如下:
①.在Shell命令行(linux终端)输入命令直接调用sed,格式为:
sed [options] 'sed command' filename
②.将sed命令插入脚本文件后,通过sed命令进行调用,格式为:
sed [options] -f scriptName filename
//-f标示正在调用sed脚本文件,scriptName即脚本文件名称
③.将sed命令插入脚本文件后,给脚本文件添加可执行权限,然后直接执行,格式为:
chmod +x scriptName //给脚本文件添加可执行权限
./scriptName filename
需要注意的是③中脚本的编写与②中脚本的编写不一样,③中的sed脚本文件需要以sha-bang(#!)符号开头,sha-bang 后面是解析这个脚本的程序名,比如“/bin/sed”.
不管哪一种调用方式,如果没有指定输入文件(即目标文件filename),sed将从标准输入中接收输入。
sed常用的选项有三个:
-n 除sed命令打印需求外不打印数据到标准输出。
-e
用于执行多个sed命令,如果只执行一个sed命令,可以省略。
-f 表示正在调用sed脚本文件,example:
A)sed -n ‘/string/=’ filename//在filename中查找‘string’,然后打印出string所在行的行号。只需要打印行号,所以-e省略
B)sed -n -e '/string/=' -e '/string/p' filename //在filename中查找‘string’,然后打印出string所在行的行号和内容。因为打印行号和内容两命令,所以需要-e
sed命令通常由定为文本行和sed编辑命令两部分组成,sed编辑命令对定位文本行进行进行各种处理,sed提供以下两种方式定位文本:
①.使用行号,指定一行,或指定行号范围,example:
A)sed -n '1p' filename//定位到第一行并打印出来
B)sed -n ‘1,10p’ filename //定位到第1行到第10行范围的内容并打印出来
②.使用正则表达式
选 项 | 意 义 |
---|---|
x | x为指定行号 |
x,y | 指定从x到y的行号范围 |
/string/ | 查询包含string的行 |
/string/string/ | 查询包含两个string的行 |
/string/,x | 从匹配到string的行号开始到x行号之间的所有行 |
x,/string/ | 从x行号开始到匹配到string的行号之间的所有行 |
x,y! | 查询不包括x和y行之间所有行之外的其他所有行 |
选 项 | 意 义 |
---|---|
p | 打印匹配行 |
= | 打印文件行号 |
a\ | 在定位行号之后追加文本信息 |
i\ | 在定位行号之前插入文本信息 |
d | 删除文本行 |
c\ | 用新文本替换定位文本 |
s | 使用替换模式替换相应模式 |
r | 从另一个文件中读取文本 |
w | 往另一个文件中写入文本 |
y | 变换字符 |
q | 第一个模式匹配完成后退出 |
l | 显示与八进制ASCII码等价的控制字符 |
{} | 在定位行执行的命令组 |
n | 读取下一个输入行,用下一个命令处理新的行 |
h | 将模式缓冲区中的文本复制到保持缓冲区 |
H | 将模式缓冲区中的文本追加到保持缓冲区 |
x | 互换 模式缓冲区与保持缓冲区中的内容 |
g | 将保持缓冲区中的内容复制到模式缓冲区 |
G | 将保持缓冲区中的内容追加到模式缓冲区 |
相关文章推荐
- git bash使用(markdown版)
- windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长
- 手机离线Monkey测试(shell语言版)
- Shell重定向
- shell脚本:利用7z备份git项目
- Linux shell用法和技巧(转)
- Ruby调用Linux操作系统shell命令
- HBase 常用Shell命令
- linux下shell显示-bash-4.1#不显示路径解决方法
- Linux学习4之shell脚本中的小数运算
- shell脚本--猜数字
- bash中的特殊文件夹
- LeetCode:Shell题目
- linux下提示bash:command not found
- Linux学习3之shell的if大小比对使用
- shell脚本实现nginx开机自启
- linux之shell学习:sort使用
- shell脚本--判断输入的ip是否正确
- 如何使用PowerShell管理Windows服务
- shell命令行处理getops/getopt