Re: [問題] 在windows下使用sed取代雙引號之問

看板Linux作者時間13年前 (2012/11/16 17:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
於 西元2012年10月08日 16:32, Bad_To_The_Bone 提到: > 大家好 > 小弟有個c的.h檔 > 內容可能是 > #define _MYFILENAME_STR "text.exe" > 我想把他做成批次檔的變數 > 也就是 > set _MYFILENAME_STR=test.exe > 由於裡面可能有多個\t(tab) 與" "(空白) > 所以我想到的方式是 > grep FILENAME_STR FILENAME_STR 檔名.h > 1.tmp > sed s/\t//g 1.tmp > 2.tmp > sed s/" "//g 2.tmp > 3.tmp > sed s/#define/"set "/g 3.tmp > 4.tmp > sed s/_STR\"/_STR=/g 4.tmp > 5.tmp > sed s/\"//g 5.tmp>out.bat > 但是到了sed s/_STR\"/_STR=/g 4.tmp > 5.tmp的時候 > D:\>sed "s/_STR\"/_STR=/g" 4.tmp > 5.tmp > set _MYFILENAME_STR=test.exe" > sed: can't read >: Invalid argument > set _MYFILENAME_STR=test.exe" > 想請教一下這種狀況是什麼錯誤呢 感覺是雙引號的問題 > 但是我怎麼改都失敗 > 另外我想要不產生中間的tmp檔 > 改以使用| 該怎麼下指令給sed好呢 只知道 powershell 環境下可以這樣: [PATH]sed 's/[ \t]//g;s/\"//g;s/#define/set /g;s/_STR/_STR=/g' [PATH]filename1 > [PATH]filename2 -- ⊙翱翔青空.傲視大地⊙
文章代碼(AID): #1GfWWItL (Linux)