Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法
sed是一种强大的流式编辑器 (stream editor for filtering and transforming text),它能够完美的使用正则表达式,逐行处理文本并把结果显示到屏幕上。sed的强项是替换文本中的特定字符,而写shell有个步骤就是从一段文本中截取一段字符进行处理,所以熟练掌握sed命令是写shell脚本的基本技能。
用法:
sed [选项]... {脚本(如果没有其他脚本)} [输入文件]
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
选项:
-p 查找
-d 删除
-s 替换
sed可以向grep一样查找文件文本中包含关键字的行并把改行显示在屏幕上。
命令写法:sed -n '/(匹配的字符串)/'p 文件名(简记为-np)
1、搜索passwd文件中包含root关键字的行。
sed -n '/root/'p passwd
Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法
2、搜索ssh文件中以#开头的行
sed -n '/^#/'p ssh
Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法
3、搜索正则'o+t'类型的行
sed -nr ‘/o+t/’p passwd
Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法
注意“+”号属于扩展正则,需要跟-r选项才能用
4、搜索正则‘两次o’的行
sed -nr '/o{2}/'p passwd
Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法
5、搜索正则root或者bus的行‘root|bus’
sed -nr '/root|bus/'p passwd
Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法
6、不区分大小写搜索关键字所在的行
sed -n '/nologin/'Ip passwd 注意是大写字母I,不是管道符号|
Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法
命令写法:sed -n ‘行号或行号描述’p 文件路径 注意单引号''内不需要跟两个//
1、显示文件第2行内容
sed -n '2'p passwd
Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法
2、显示文件第6行至10行内容
sed -n '6,10'p passwd 注意中间是逗号,不是-
Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法
3、全文显示
sed -n '1,$'p passwd 注意不能写成“sed -n '^,$'p passwd”
Linux shell基础(五)sed命令一、sed命令二、sed 匹配搜索用法三、sed删除特定行用法四、sed替换特定内容用法五、sed调换字符串次序用法