需求:
1、将指定名称的文件拷贝到指定目录;
2、并把文件路径间隔符/替换成_
此处以统计Jenkinsfile为例
#!/bin/bash
filelist=`find . -name Jenkinsfile`
i=0
for f in $filelist
do
echo "file:$f"
name=`echo $f |sed 's!\.\/!!g'|sed 's!\/!_!g'`
cp $f ./jflist/$name
let i++
done
注意此处的路径/
的替换,此时不能使用's/\/\_/g'
,否则会出现下面的错误
sed: -e expression #1, char 8: unterminated `s' command
使用!
替换使用\
的位置,即's!\/!_!g'
使用变量
# 使用变量
sed -i 's/'''$a'''/'''$b'''/g' filename
# 变量中包含/
sed -i 's#'''$a'''#'''$b'''#g' file