sed实现路径替换

shell和sed忘得差不多了,现在更喜欢用python notebook,可以自动补充,所以很方便。但是记得以前用过这个的,试了几次不成功,搜了一下,这几个地方给的比较清晰,尤其是路径替换。

以下内容均为转载。

http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html

用sed命令在行首或行尾添加字符的命令有以下几种:

假设处理的文本为test.file

在每行的头添加字符,比如"HEAD",命令如下:

sed 's/^/HEAD&/g' test.file

在每行的行尾添加字符,比如“TAIL”,命令如下:

sed 's/$/&TAIL/g' test.file

 

 

转载地址:https://my.oschina.net/SmileWolf/blog/100269

写脚本,要实现文件覆盖。比如,有一个文件/home/a/1.xml,想/home/b目录下,如果b目录下存在同名文件就覆盖。可以这样写脚本:

#!/bin/sh

SRC_PATH=/home/a
DST_PATH=/home/b

src_file=${SRC_PATH}/1.xml
dst_file=`echo ${src_file} | sed "s:${SRC_PATH}:${DST_PATH}:g"`

cp -f ${src_file} ${dst_file}

  

当然了,也可以用dirname和basename实现,用这个小例子主要是为了实验sed的用法。

一般情况下,sed 's/pattern/pattern/flag' 是用/来进行分隔的。但这里的源字符串和替换字符串中,都带有字符/,如果再用/进行分隔,就会产生冲突。所以,改用了:进行分隔

posted @ 2017-10-27 09:26  caoeryingzi  阅读(4762)  评论(0编辑  收藏  举报