2014-06-12 66 views
1

基本上完整的脚本都是关于从xcode项目中搜索未使用的图像,并将所有这些图像复制到一个临时目录。由于脚本花费了太多时间来进行整体操作,所以我正在尝试通过减少操作来优化脚本。Bash:从变量编辑文件组件?

所以图像有两种类型一)sample.png & B)[email protected]

的是第一次我试图做我该使用此命令

忽略 @2x.png文件,以减少操作次数
for i in `find ../Resources/Assets ! -name '*@2x.png'`; do 

然后通过使用sample.png我正在搜索该文件正在越来越多的项目中使用或没有(我正在使用ack和其他条件工作正常)。如果最终的输出不即图像是没有得到在项目中使用,然后我想这个文件复制到一个临时位置即

cp "$i" "MyFolder" 

现在我知道sample.png是未使用的,所以我要也复制[email protected]。通过这样做,我避免了在@ 2x文件上进行搜索和确认操作的次数。

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

+0

你的问题很难理解。请编辑它并在开始时说清楚你正在尝试做什么。 –

+0

@MarkSetchell我已添加详细信息。请检查 – Tariq

+0

嗯...我还是不明白。你可以发布代码太慢,所以我们可以理解吗?目前还不清楚如何将一些图像复制到另一个目录来帮助某个过程。 –

回答

2

您可以使用此,

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

(OR)

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

我得到这个错误“cp:fts_open:没有这样的文件或目录”:(我也编辑了我的问题,并增加了更多信息 – Tariq

+0

@Tariq,更新了答案 – sat

+0

不知道哥们,但我不断收到fts_open错误... cp“$我”“MyFolder”工作正常只是新的复制命令不工作..我们是否错过了一些标点符号错误等? – Tariq

0

我不知道你的意思不是 “MV” 的文件,而不是,让他们的出路。

无论如何,你可以尝试:

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