產生檔案清單並編輯的script - Linux

Table of Contents

請教一個bash script寫法

我的需求是將目錄下所有檔案產生成一個list清單 因為目錄挺多的

其副檔名是.xyz 但是我的清單不需要副檔名部分

所以我希望產生list的同時 vi開啟該檔 將副檔名去掉

我的寫法是

#!/bin/sh
ls *.xyz -1 >list
vi list << EOF
:1,$s/.xyz//g (查過vi取代語法,:1,$s/1/2/g 代表將1全部取代為2)
:wq!
EOF

但是這樣寫卻失敗了
後來亂試:
#!/bin/sh
ls *.xyz -1 >list
vi list << EOF
:2 s/.xyz//g (將第二行.xyz取代成沒東西)
:wq!
EOF

結果 這樣寫第二行卻真的有改成功

請問我這樣到底是哪裡有問題,怎麼會一個可以一個不行@@

以上 謝謝!

--

All Comments

Poppy avatarPoppy2009-08-31
不好意思 原來:1,$s/.xyz//g這裡 $跟s要空一格@@
Selena avatarSelena2009-08-31
不過發現這樣執行很慢 請問有好一點的方法嗎?