2016-07-26 65 views
4

下面是對應的bash腳本,我想轉換爲fish如何在for循環中重命名魚中的文件擴展?

for j in *.md; do mv -v -- "$j" "${j%.md}.txt"; done 

這裏是我的嘗試:

for file in *.md 
    mv -v -- "$file" "{{$file}%.md}.txt" 
end 

但它只是結束了重命名的所有文件,如下所示:

'amazon.md' - > '{{amazon.md}%MD}的.txt'

我該如何正確做到這一點?

+0

爲什麼我得到-1? – codehitman

+0

你看過手冊嗎?如果是,爲什麼你期望不支持的語法工作?如果沒有,你爲什麼不閱讀手冊,而不是在這裏問廢話? – hek2mgl

+0

我試了幾件事,並糾正了這個問題。謝謝! – codehitman

回答

4

我找到了一個替代解決方案是:

for file in *.md 
    mv -v -- "$file" (basename $file .md).txt 
end 

它的工作原理就像一個魅力!

1

要做到這一點正好與魚:

for j in *.md 
    mv -v -- $j (string replace -r '\.md$' .txt $j) 
end