Bash:从变量编辑文件组件?

时间:2014-06-12 10:41:11

标签: bash shell

基本上,完整的脚本是关于从xcode项目中搜索未使用的图像并将所有这些图像复制到临时目录。由于脚本花费了太多时间进行整体操作,因此我尝试通过减少操作来优化脚本。

因此,图像有两种类型:a)sample.png& b)sample@2x.png

我想要做的是首先忽略@2x.png个文件,以减少使用此命令的操作次数

for i in `find ../Resources/Assets ! -name '*@2x.png'`; do 

然后使用sample.png我搜索该文件是否已在项目中使用(我使用ack和其他工作正常的条件)。如果最终输出为否,即图像未在项目中使用,那么我试图将该文件复制到临时位置,即

cp "$i" "MyFolder"

现在我知道sample.png未使用,所以我也要复制sample@2x.png。通过这种方式,我避免了对@ 2x文件的搜索和确认操作次数。

但现在我的问题是如何更改文件并复制@ 2x文件?

2 个答案:

答案 0 :(得分:2)

你可以使用它,

cp "$f" "$(sed 's/.png/@2x.png/g' <<< $f)" MyFolder/

(OR)

cp "$i" "${i/.png/@2x.png}" MyFolder/

答案 1 :(得分:0)

我想知道你是不是对...&m 34&#34;而是将文件放在一边。

无论如何,你可以尝试:

filename=sample.png
echo "Filename=$filename"
echo "Extra   =${filename/.png/@2x.png}"