作者 主題: 如何用 script 轉換 \ 為 /  (閱讀 1069 次)

0 會員 與 1 訪客 正在閱讀本文。

casa

  • 懷疑的國中生
  • **
  • 文章數: 41
    • 檢視個人資料
如何用 script 轉換 \ 為 /
« 於: 2014-02-26 11:40 »
學長好:
對不起,有個問題想請問各位學長:
我會在 DOS 下產生一個檔案,寫一些檔案的路徑,再轉到 Linux 下跑 script
好比說,這個檔案的內容:
# cat dos_file.txt
\00.txt
\11\22.txt
\aa\bb\cc.txt
但是,問題來了,我在 Linux 下,需要的格式應該是
/00.txt
/11/22.txt
/aa/bb/cc.txt
不知道如何用 script 直接讀取 dos_file.txt
然後可以讀取 那三個檔案:
/00.txt
/11/22.txt
/aa/bb/cc.txt

我目前是用 ed 先編輯 dos_file.txt 把 \ 換成 / 再處理...
只是,不知道有沒有辦法在讀每一行時,就把 \ 換成 / ?   
代碼: [選擇]
#!/bin/sh
cp dos_file.txt dos_file.txt.modify
ed -s dos_file.txt.modify <<< $'g.\\\\.s..\/.g\nw\nq\n'
while read line; do
  if [ "x${line}" = "x" ]; then
    continue
  fi
  echo "${line}"
done < dos_file.txt.modify;

還請學長指導一下
謝謝

hongbin

  • 憂鬱的高中生
  • ***
  • 文章數: 101
    • 檢視個人資料
Re: 如何用 script 轉換 \ 為 /
« 回覆 #1 於: 2014-02-26 15:36 »
sed 's/\\/\//g' oldfile >newfile

HH106

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
Re: 如何用 script 轉換 \ 為 /
« 回覆 #2 於: 2014-02-27 13:48 »
gnu sed
代碼: [選擇]

sed -i 's#\#/#g'  dos_file.txt