2014-03-06 40 views
1

我有一個腳本,可以對文本文件的各種元素進行更改 - 這是一個遊戲設置,我需要根據玩家選擇的級別來更改內容。基本上它需要一個文件,做一些整理,然後爲每個級別生成兩個啓動文件。sed未終止地址正則表達式

這段代碼工作正常,但隨後的行不完整的,我看到有關消息「sed的:文件SCR路線4:未結束的地址正則表達式」: -

lines=`cat -n temp1 | grep TeamID= | grep -v TeamID=0 | awk '{print $1}'` 

# Nothing to add for Noble/Prince 
cp temp1 $noble_game_huts 

echo "Creating Monarch" 
# Monarch - adding TECH_ARCHERY 
rm -f scr 
for i in `echo $lines` 
do 
    echo $i"a\\" >> scr 
    echo "\tTech=TECH_ARCHERY 
">> scr 
done 

sed -f scr temp1 > temp2 
sed '0,/Handicap=HANDICAP_NOBLE/s/Handicap=HANDICAP_NOBLE/Handicap=HANDICAP_MONARCH/' temp2 > "$monarch_game_huts" 

我搜索谷歌和這個網站,但雖然有很多命中沒有什麼似乎在這裏幫助。

使用bash在Linux Mint 16上運行此腳本。

謝謝。

艾倫

+0

請告訴我們,是造成問題的'scr'文件。 –

+0

請注意,'\ t'不會被'sed'擴展爲一個標籤,而是由shell刪除反斜槓,除非您單引號。 – user2719058

+0

你可以發佈'scr'文件的內容嗎? –

回答

1

提取的線似乎有相應的團隊行數,每行i閱讀,那麼你要添加基於這一行數的文本。

你所需要的行動前的空間,所以我建議

echo "${i} a\\\n\tTech=TECH_ARCHERY\n" >> scr 

也(沒有這個問題)

lines=`sed -n '/TeamID=[^0]/ =' temp1`