shell和sed忘得差很少了,如今更喜歡用python notebook,能夠自動補充,因此很方便。可是記得之前用過這個的,試了幾回不成功,搜了一下,這幾個地方給的比較清晰,尤爲是路徑替換。html
如下內容均爲轉載。python
http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.htmlshell
用sed命令在行首或行尾添加字符的命令有如下幾種:bash
假設處理的文本爲test.filespa
在每行的頭添加字符,好比"HEAD",命令以下:.net
sed 's/^/HEAD&/g' test.filexml
在每行的行尾添加字符,好比「TAIL」,命令以下:htm
sed 's/$/&TAIL/g' test.fileblog
轉載地址: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' 是用/來進行分隔的。但這裏的源字符串和替換字符串中,都帶有字符/,若是再用/進行分隔,就會產生衝突。因此,改用了:進行分隔。