我遇到了一个我写过的bash脚本的问题。该命令一直有效,直到SED,我不确定我做错了什么。 HAL是我试图替换的文本文件中的变量。有什么想法吗?
for i in $( cat LIST.txt) do
sed s/HAL/i/ <~/test/template.txt > new$i.txt
done
给出的错误是“意外令牌sed附近的语法错误”然后它给出了sed行。
答案 0 :(得分:0)
我认为你错过了for
部分和do
之间的分号。
for i in $(cat LIST.txt); do
sed s/HAL/i/ <~/test/template.txt > new$i.txt
done
这可能更好地重写为(假设LIST.txt
中每行有一个单词:
while read i; do
# Are you sure you don't want to substitute with the variable (`$i`
# in this case) instead of "i" in the line below?
sed s/HAL/i/ < ~/test/template.txt > new$i.txt
done < LIST.txt
如果您想用sed
替换,您可能希望$i
行如下所示:
sed "s/HAL/$i/" < ~/test/template.txt > new$i.txt