bash疯狂的行为,没有找到'sed',但有时只是

时间:2016-02-19 14:13:38

标签: bash sed

此脚本

#!/bin/bash

test="This is a test"
echo $test
test=`echo $test | sed -e 's/s/S/g'`
echo $test

htmlpage=`lynx "someurl.com/translate?text=${1}" -source .` #Gets the html page (crappy formatting : no newlines)
htmlpagewnl=`echo ${htmlpage} | sed -e 's/TRANSLATED_TEXT/\nTRANSLATED_TEXT/g' -e 's/;INPUT_TOOL_PATH/\n/g'` #Puts newlines only where I need (where is(are) the translated word(s))
line=`echo ${htmlpagewln} | sed -n '/TRANSLATED_TEXT='.*'/p'` #Gets the interesting line
word=`echo ${line} | sed -e 's/TRANSLATED_TEXT=//g' | tr -d "'"` #Gets the final translated word(s)

echo $word

应该输出用法语给出的翻译英语单词。 要做到这一点,我使用一个网站的html页面,并在其中找到翻译后的单词,知道如何制作这个html页面。

但是,它很好地输出了'测​​试'部分:

This is a test
ThiS iS a teSt

并且: /home/xxxxx/bin/Translate: line 9:  sed : command not found

如果在第9行找不到,为什么在第5行找到它呢?

whichsed位于/bin,而/bin位于$PATH,所以问题并非如此。

PS:我不知道我使用哪个网站,因为我不知道法律是否合适(我可能是偏执狂,但我认为付费服务可以做我想要的......) ,但我可以给一段html页面,以便你可以测试代码...

1 个答案:

答案 0 :(得分:0)

感谢@glennjackman,od -c myscript,我看到了一些302& 240个字符(非ASCII),这就是问题:)我只是不明白这些字符是如何出现的...无论如何,非常感谢你。