2014-04-28 137 views
3

我想在shell腳本中使用mv命令
現在文件是格式foo-<date>.tar.gz我想將它重命名爲foo1-<date>.tar.gz.
我試過了,切FOO重命名文件和重命名它並連接和所有,但我想要的東西很簡單如下
mv foo*.tar.gz foo1*.tar.gz
日期應該保持只有foo應該改變foo1 這有可能嗎?如果是的話如何?在shell腳本使用mv命令重命名文件部分

預先感謝您!

+0

看到這個問題http://stackoverflow.com/questions/17554092/unix-move-command-regex –

+0

這是b它不同我不想改變完整的基名,我只想改變基名的一部分,而基名的第二部分是不是恆定的日期(即,它不像「java」那樣是固定的字符串)。感謝您的回覆。 – AnkurTank

+0

是的,我看到了,但基本上你需要一個正則表達式的移動......反正一個正確的問題,你得到了你的答案:) –

回答

2

您可以使用BASH字符串操作:

f='foo-12APR2014.tar.gz' 
nf="foo1-${f#*-}" 

測試:

echo "$nf" 
foo1-12APR2014.tar.gz 

PS:如果不使用BASH那麼你可以使用SED:

nf=`echo "$f"|sed 's/^foo/foo1/'` 
+0

他們都在bash和busybox shell上工作非常感謝anubhava閃電般的快速反應。 – AnkurTank

+0

不客氣,很高興它解決了。 – anubhava