sed实战,有你想要的!持续更新……

简介:

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

实战一:

将如下内容:

rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508143915_1.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508143915_2.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508143915_3.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144007_1.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144007_2.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144007_3.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144007_4.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144124_1.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508145510_1.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508145511_2.jpg

转换成:

rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508143915_1.jpg /data/www/uploads/allimg/130508/153_130508143915_1.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508143915_2.jpg /data/www/uploads/allimg/130508/153_130508143915_2.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508143915_3.jpg /data/www/uploads/allimg/130508/153_130508143915_3.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144007_1.jpg /data/www/uploads/allimg/130508/153_130508144007_1.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144007_2.jpg /data/www/uploads/allimg/130508/153_130508144007_2.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144007_3.jpg /data/www/uploads/allimg/130508/153_130508144007_3.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144007_4.jpg /data/www/uploads/allimg/130508/153_130508144007_4.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508144124_1.jpg /data/www/uploads/allimg/130508/153_130508144124_1.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508145510_1.jpg /data/www/uploads/allimg/130508/153_130508145510_1.jpg
rsync -azvP /data/wwwpicbak/uploads/allimg/130508/153_130508145511_2.jpg /data/www/uploads/allimg/130508/153_130508145511_2.jpg

需求解析:

rsync同步需要源目两个目录,原内容最后一列即为源目录(/data/wwwpicbak/uploads/allimg/130508/153_130508143915_1.jpg),现在需要增加一个目标目录(/data/www/uploads/allimg/130508/153_130508143915_1.jpg),注意源目录中的“wwwpicbak”变成“www”,其他不变。

实战操作

步骤:先复制最后一列,再替换字符

cat FILENAME | sed 's/\(\/.*$\)/\1 \1/' | sed 's/wwwpicbak/www/2'

sed实战,有你想要的!持续更新……

实战讲解

sed编辑器用圆括号来定义替换模式中的子模式。你可以在替代模式中使用特殊字符来引出每个子模式。替代字符由反斜线和数字组成。数字表明子模式的位置。sed编辑器会给第一个子模式分配字符\1,给第二个子模式分配字符\2,以此类推。

来看一个在sed编辑器脚本中使用这个特性的例子。

# echo "The System Administrator manual" | sed 's/\(System\) Administrator/\1 User/'
The System User manual
#

这个替换命令用一对圆括号将单词System括起来,将其标示为一个子模式。然后它在替代模式中使用 \1 来提取第一个匹配的子模式。这没什么特别的,但在处理通配符模式时却特别有用。

转载于:https://blog.51cto.com/chinahao/2050199

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值