sed未终止地址正则表达式

时间:2014-03-06 19:46:47

标签: regex bash sed

我有一个脚本可以更改文本文件的各个元素 - 这是一个游戏设置,我需要根据玩家选择的级别更改内容。基本上它需要一个文件,做一些整理,然后为每个级别生成两个启动文件。

这段代码工作正常但后续行没有完成,我看到有关“sed:file scr line 4:unterminated address regex”的消息: -

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上运行此脚本。

感谢。

艾伦

1 个答案:

答案 0 :(得分:0)

提取的行似乎有一个与团队相对应的行号,每行都在i中读取,然后您想根据此行号添加文本。

你需要在行动之前留出一个空间,所以我建议

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

也(不是这个问题)

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