朝、私は特定のディレクトリ内のすべてのファイルから特定のXMLタグの値を抽出するbashスクリプトを作成しています。私は、各行をトークン化し、関連するトークンを返すことによってこれを行うことにしました。問題は、それが正しくトークン化されておらず、その理由を完全に理解できないことです。これが問題を再構築するために私が作ることができる最小の例です
#!/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をいじることに関係していると思いますが、これはこれまで問題になりませんでした。
何か案は?
ありがとう、リック