Bad_To_The_Bone
2012-10-08 08:32:17 UTC
大家好
小弟有個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好呢
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.210.127
※ 編輯: donkeychen 來自: 114.39.210.127 (10/08 16:32)
小弟有個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好呢
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.210.127
※ 編輯: donkeychen 來自: 114.39.210.127 (10/08 16:32)