こんなシェルを書いてた
MSG=""
awk ????? | head -50 |
while IFS=$'\t' read AAAA BBBB
do
MSG="${MSG}${AAAA}|${BBBB}|"
grep $BBBB ${ファイル} | awk 'BEGIN {FS="|";OFS="|"} {print $2,$3}' | sort | uniq |
while IFS="|" read CCCC DDDDD
do
MSG=${MSG}${CCCC}|${DDDD}|"
done
done
echo ${MSG}
ってな感じ。
MSGの中身は、何も入っていない・・・・
何でだ。。。
サブシェルが分かってないからこんなことではまる。
名前つきパイプで渡してやればいい。
while IFS=$'\t' read AAAA BBBB
do
MSG="${MSG}${AAAA}|${BBBB}|"
while IFS="|" read CCCC DDDDD
do
MSG=${MSG}${CCCC}|${DDDD}|"
done < <(grep $BBBB ${ファイル} | awk 'BEGIN {FS="|";OFS="|"} {print $2,$3}' | sort | uniq )
done < <(awk ????? | head -50)
echo ${MSG}
ってやればできる。
んーーサブシェルが良く分からん・・・
ここをしっかり理解しないと・・・・
http://search.luky.org/linux-users.9/msg06102.html