請教一個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
結果 這樣寫第二行卻真的有改成功
請問我這樣到底是哪裡有問題,怎麼會一個可以一個不行@@
以上 謝謝!
--
我的需求是將目錄下所有檔案產生成一個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