早上全部, 我正在编写一个bash脚本以从给定目录中的所有文件中提取某些XML标记的值。我决定通过标记每行并返回相关标记来做到这一点。问题在于它没有正确标记,我无法弄清楚为什么。这里是最小的例子,我能有这样的重建问题字符串标记化算法不会令牌化
#!/bin/bash
for file in `ls $MY_DIRECTORY`
do
for line in `cat $MY_DIRECTORY/$file`
do
LOCALIFS=$IFS
IFS=<>\"
TOKENS=($line)
IFS=$LOCALIFS
echo "Token 0: ${TOKENS[0]}"
echo "Token 1: ${TOKENS[1]}"
echo "Token 2: ${TOKENS[2]}"
echo "Token 3: ${TOKENS[3]}"
done
done
我猜问题是我的,是与本身使用IFS(即猫操作),在一个循环内IFS摆弄的事,但是这以前从未遇到过问题。
任何想法?
感谢, 里克
请给ASN例如线从文件和descrivbe如何输出是不正确 – 2010-10-07 11:20:14
许多初学者错误('我在$(ls)',UUOC ......)在这里。参见[bash陷阱](http://mywiki.wooledge.org/BashPitfalls)。 – Benoit 2010-10-07 11:49:21