作者:手机用户2502861065 | 来源:互联网 | 2014-05-22 18:46
用sed实现路径替换写脚本,要实现文件覆盖。比如,有一个文件/home/a/1.xml,想/home/b目录下,如果b目录下存在同名文件就覆盖。可以这样写脚本:www.2cto.com1#!/bin/sh23SRC_PATH/home/a4DST_PATH/home/...
用sed实现路径替换
写脚本,要实现文件覆盖。比如,有一个文件/home/a/1.xml,
想/home/b目录下,如果b目录下存在同名文件就覆盖。可以这样写脚本:
www.2cto.com
1
#!/bin/sh
2
3
SRC_PATH=/home/a
4
DST_PATH=/home/b
5
6
src_file=${SRC_PATH}/1.xml
7
dst_file=`echo ${src_file} | sed "s:${SRC_PATH}:${DST_PATH}:g"`
8
9
cp -f ${src_file} ${dst_file}
当然了,也可以用dirname和basename实现,用这个小例子主要是为了实验sed的用法。
一般情况下,sed 's/pattern/pattern/flag' 是用/来进行分隔的。但这里的源字符串和替换字符串中,都带有字符/,如果再用/进行分隔,就会产生冲突。所以,改用了:进行分隔。