2013-01-08 272 views
0

尝试在两个文件中读取四个不同的列并对其进行适当的分配。谁能帮忙?循环内循环?

languagefile.txt写着: 语言isocode

english.txt写着: 字段值

我也想通过这两个文件环和关联的isocode & &名外地&值。

我有一个while循环,做了english.txt文件:

cat english.txt| while read FIELD VALUE; do 
GET https://googleapis.com/language/translate/v2?key=$mykey&q=$VALUE&source=en&target=es 
echo "$FIELD "$VALUE"; done 

不过,我需要延伸到帐户的languagefile了。所以它会这样做:

cat english.txt| while read FIELD VALUE; do 
GET https://googleapis.com/language/translate/v2?key=$mykey&q=$VALUE&source=en&target=$isocode 
echo "$ISO $FIELD "$VALUE" >> $Language.txt; done 

我希望这是有道理的。我最终只需要为每种语言和ISO代码做它。上最好的approiaach不知道

+0

是GET命令吗?还有:读一个bc:这意味着在b的第二个字段中取第一个字段,并在c中取其余的行。 (由IFS分隔的字段,默认空格,制表符和换行符)。不知道这是你想做什么... –

回答

0

如果我理解你正确,最简单的解决方案可能会利用paste

while read -r iso field value; do 
    # do something with $iso $field and $value 
done < <(paste languagefile.txt english.txt) 

注意,事情会得到更多的毛毛,如果任何输入数据字段可以包含空格。

0

对不起,让我换句话说,是GET是一个命令。

文件1包含: 语言ISO

文件2包含: 字段值

我最终希望有最终结果为: language.txt: ISO字段值

如果语言。 txt来自file1,字段1。

所以它需要像这样: 对于每次读取$ language,请使用$ field $ value $ iso(对应于$ language中的行)执行GET请求,然后将结果输入到$ language.txt中格式$ iso $ field $ value

+0

你应该编辑你的原始问题,而不是添加一个解释作为一个'答案'。当人们开始对答案进行投票时,您的额外解释将被排序得更低,所以其他人可能看不到它。 – pepoluan