Discussion:
[問題] tr替換文字會亂替換
(时间太久无法回复)
葡萄糖
2015-07-06 16:17:40 UTC
Permalink
最近練習寫sh腳本
我是先ls出檔案列表,再一一帶入指令中
不過因為要輸出檔案,所以也修改成輸出列表
例如:
Input :out01.mp4
Output:out01.gif

我是用cat Input | tr .mp4 .gif > Output
不過實際上輸出會變成out0f.gif
04的4也被替換成f了
有沒有解決方法?

順便問問
自動化轉檔都有輸入輸出檔
有沒有更好的方法可以自動填入檔案名稱?

--
Arch Linux適應中...
Install by Antergos
不過已經被我修改的像是自己的系統了

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.69.143
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1436199461.A.3C0.html
釣到一隻猴子@_@
2015-07-06 16:54:13 UTC
Permalink
※ 引述《a07051226 (葡萄糖)》之銘言:
: 最近練習寫sh腳本
: 我是先ls出檔案列表,再一一帶入指令中
: 不過因為要輸出檔案,所以也修改成輸出列表
: 例如:
: Input :out01.mp4
: Output:out01.gif
: 我是用cat Input | tr .mp4 .gif > Output
: 不過實際上輸出會變成out0f.gif
: 04的4也被替換成f了
: 有沒有解決方法?
這代表你沒理解tr的用途
tr的目的是替換"字元"
所以你上面的tr .mp4 .gif指的是
把.換成. m->g p->i 4->f
你真正需要的是sed
sed 's/\.mp4/.gif/g'之類的
: 順便問問
: 自動化轉檔都有輸入輸出檔
: 有沒有更好的方法可以自動填入檔案名稱?
你可以看指令有沒有直接改原檔的選項
像sed有-i
不過像tr這種不吃檔案的要另外處理就是
總之你會需要的是用變數

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.141.207
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1436201654.A.3B2.html
Loading...