大家好
小弟有個c的 rename.h檔
系統是winxp sp3
內容可能是
#define _MYFILENAME_STR "text.exe"
我想把他做成批次檔的變數
也就是
set _MYFILENAME_STR=text.exe
放入.bat檔以後供後續指令指定檔名時可用
由於裡面可能有多個\t(tab) 與" "(空白)
所以我想到的方式是
grep FILENAME_STR rename.h > 1.tmp
-> 1.tmp 內容
---------------
#define MYFILENAME_STR "text.exe"
---------------
sed s/\t//g 1.tmp > 2.tmp
-> 2.tmp 內容
---------------
#define MYFILENAME_STR "text.exe"
---------------
sed s/" "//g 2.tmp > 3.tmp
-> 3.tmp 內容
---------------
#defineMYFILENAME_STR"text.exe"
---------------
sed s/#define/"set "/g 3.tmp > 4.tmp
-> 4.tmp 內容
---------------
set MYFILENAME_STR"text.exe"
---------------
sed s/_STR\"/_STR=/g 4.tmp > 5.tmp
-> 錯誤訊息如下
---------------
set MYFILENAME_STR=text.exe"
sed: can't read >: Invalid argument
sed: can't read 5.tmp: No such file or directory
---------------
sed s/\"//g 5.tmp>out.bat
-> 這步就沒做了
想請教一下這種狀況是什麼錯誤呢 感覺是雙引號的問題
但是我怎麼改都失敗
另外我想要不產生中間的tmp檔
改以使用| 該怎麼下指令給sed好呢
感謝
--
小弟有個c的 rename.h檔
系統是winxp sp3
內容可能是
#define _MYFILENAME_STR "text.exe"
我想把他做成批次檔的變數
也就是
set _MYFILENAME_STR=text.exe
放入.bat檔以後供後續指令指定檔名時可用
由於裡面可能有多個\t(tab) 與" "(空白)
所以我想到的方式是
grep FILENAME_STR rename.h > 1.tmp
-> 1.tmp 內容
---------------
#define MYFILENAME_STR "text.exe"
---------------
sed s/\t//g 1.tmp > 2.tmp
-> 2.tmp 內容
---------------
#define MYFILENAME_STR "text.exe"
---------------
sed s/" "//g 2.tmp > 3.tmp
-> 3.tmp 內容
---------------
#defineMYFILENAME_STR"text.exe"
---------------
sed s/#define/"set "/g 3.tmp > 4.tmp
-> 4.tmp 內容
---------------
set MYFILENAME_STR"text.exe"
---------------
sed s/_STR\"/_STR=/g 4.tmp > 5.tmp
-> 錯誤訊息如下
---------------
set MYFILENAME_STR=text.exe"
sed: can't read >: Invalid argument
sed: can't read 5.tmp: No such file or directory
---------------
sed s/\"//g 5.tmp>out.bat
-> 這步就沒做了
想請教一下這種狀況是什麼錯誤呢 感覺是雙引號的問題
但是我怎麼改都失敗
另外我想要不產生中間的tmp檔
改以使用| 該怎麼下指令給sed好呢
感謝
--
All Comments