プロセス置換を使用して while ループにフィードしようとしています。
logFile=$1
declare -A frequencyMap
while read line
do
name=$(echo $line | awk '{print $11}')
if [ ${frequencyMap[$name]+_} ]
then frequencyMap[$name]=$(expr ${frequencyMap[$name]} + 1)
else frequencyMap[$name]=1
fi
done < <(zgrep 'PersonalDetails' $logFile)
for key in "${!frequencyMap[@]}"
do
echo "$key ${frequencyMap[$key]}"
done | sort -rn -k2
これは bash では正常に機能しますが、zsh では機能しません。次のエラーが表示されます。
test.sh: line 20: syntax error near unexpected token `<'
test.sh: line 20: `done < <(zgrep 'Exception' $1)'
zsh 4.3.10 を使用しています。
これをzshで動作させるにはどうすればよいですか?
更新:完全なコードを共有するために質問を変更しました