大家早上好,我正在编写一个 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(即 cat 操作)的循环中摆弄 IFS 有关,但这以前从来不是问题。
有任何想法吗?
谢谢,里克