• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 总结linux中sed命令的使用方法

总结linux中sed命令的使用方法

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了linux命令,sed命令使用方法等相关知识,希望对您有所帮助

总结linux中sed命令的使用方法

linux之sed命令:

1、初识sed

sed编辑器被称作流编辑器,它和vim这种的交互式文本编辑器不同,是根据命令来处理数据流中的数据。会执行下列操作:

一次从输入中读取一行数据(重复该操作直到全部行被读取完)

根据编辑器命令匹配数据

按照命令修改数据流中的数据

将新数据输出到STDOUT(标准输出)

其中sed命令的可以从命令行中输入,也可以从一个命令文件中读取。

sed -e script 添加script中指定的命令sed -f file 添加file中指定的命令


1.1 在命令行定义sed命令

来看一个简单的文本替换示例:

echo "hi,my name is xxx" | sed 's/xxx/kinsomy/'#修改文件sed 's/xxx/kinsomy/' data.txt#执行多个命令 用-e选项,分号隔开sed 's/xxx/kinsomy/; s/***/hhh/' data.txt

将echo输出的数据通过管道输入sed中,然后用s命令进行替换,用第二个斜杠后的数据替换掉第一个斜杠后匹配的数据。

注意:sed操作文本文件中的数据,仅仅是将修改的数据输出到STDOUT,但是并不会修改文件本身的数据


1.2 从文件读取命令

在一个文件script.sed中定义一系列的命令,方便复用。

s/*/as/x/bs/-/+
# -f选项指定命令文件sed -f script.sed data.txt


2、sed基础

2.1替换标记

上面的例子echo "hi,my name is xxx" | sed 's/xxx/kinsomy/'只会替换每一行中匹配到的第一个数据,但是一行数据中若有多个匹配项,则不能全部被替换掉。

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/'#输出hi,my name is kinsomy, i am xxx

这个时候可以使用一些替换标记substitution flag来设置替换的模式。替换标记跟在替换字符串之后。

s/pattern/replacement/flags

数字,表示将替换掉第几处被匹配到的数据

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/2'#输出 第二个xxx被替换成kinsomyhi,my name is xxx, i am kinsomy

g,表示替换所有匹配到的数据

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/g'#输出 第二个xxx被替换成kinsomyhi,my name is kinsomy, i am kinsomy

p,表示会打印出被匹配出来的行

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/p'#输出hi,my name is kinsomy, i am xxxhi,my name is kinsomy, i am xxx

w,将替换后输出保存到指定文件

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/w output.txt'


2.3 行寻址

上文说到sed命令是一行行读取文本,进行匹配操作数据,知道所有行被遍历完,如果这时候我们想要对特定的行做操作就要使用行寻址。 行寻址有两种形式:

数字形式表示行

# 操作单行$ sed '2s/xxx/***/' data.txt# 操作一定行区间[2,4]$ sed '2,4s/xxx/***/' data.txt# 操作某行开始到最后[2,endline]$ sed '2,$s/xxx/***/' data.txt

文本模式过滤器

首先在/etc/passwd内找到kinsomy的记录,然后将bash替换为csh。文本模式过滤器配合正则表达式会很强大。

sed '/kinsomy/s/bash/csh/' /etc/passwd


2.4 删除行

使用删除命令d对文本进行删除操作。

# 删除所有文本sed 'd' data.txt# 删除单行sed '2d' data.txt# 删除行区间[2,3]sed '2,3d' data.txt# 删除行区间[2,endline]sed '2,$d' data.txt# 删除匹配文本aa的行sed '/aa/d' data.txt# 删除两个匹配文本之间的文本 匹配到1和3的行之间的文本全部被删除sed '/1/,/3/d' data.txt


2.5 插入、附加文本

插入命令i在指定行前增加新行

附加命令a在指定行后增加新行

# 追加echo "Line 2" | sed 'a\pipe quote> Line 1'#插入echo "Line 2" | sed 'i\pipe quote> Line 1'


2.6 修改行

c命令用来修改一行数据

# 修改第三行文本sed '3c\pipe quote> change line ' data.txt


2.7 转换命令

命令格式 sed 'y/inchar/outchar'

将inchar中的字符一一对应地转换成outchar的字符

echo "This 1 is a test of 1 try." | sed 'y/123/456/'# 输出This 4 is a test of 4 try.


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 总结linux中sed命令的使用方法
  • Linux下正确开启关闭redis的命令是什么

相关文章

  • 2022-04-29宝塔Linux面板之修改MySQL默认保存位置
  • 2022-04-29Day.js :一个非常好用的轻量的处理时间和日期库
  • 2022-04-29广告联盟被屏蔽后显示图片链接广告方法代码
  • 2022-04-29TP框架中的钩子怎么配置调用(附代码实例)
  • 2022-04-29AI和PS快速制作漂亮复古海报
  • 2022-04-29Photoshop绘制时尚大气的播放界面
  • 2022-04-29Photoshop制作立体有机玻璃文字效果
  • 2022-04-29php怎么将ppt转jpg图片
  • 2022-04-29PHP如何使用Echarts生成数据统计报表
  • 2022-04-29Discuz后台计划任务不运行解决方法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 关于 Laravel 项目 伪静态分页处理
    • PS制作质感的立体字
    • PHP如何使用mysqli_real_escape_string()函数?
    • ThinkPHP怎么使用curl实现远端数据调取
    • mysql数据库数据字典生成代码
    • 如何使用yum安装指定版本的php
    • SQLSTATE[HY000]: General error: mode must be an integer
    • 百度小程序富文本解析工具bdParse的使用
    • 你知道前端是如何实现水印的吗
    • PHP怎么替换图片链接

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有