-1
乱数を生成し、この出力の第3のファイル:パイピングされた入力は、私はこの方法でフォーマットされた2つのファイルを持っている
word token occurrence1/occurence2
これは私のコードです:
while read token pos count
do
#get pos counts
poscount=$(grep "^$pos" $2 | cut -f 2)
#calculate probability
prob=$(echo "scale=5;$count/$poscount" | bc -l)
#print token, pos-tag & probability
echo -e "$token\t$pos\t$prob"
done < $1
問題は私の出力は、このようなものであるということである:彼らはどこから来た私は、彼らはありません、知らない番号の行があります
- : .25000
: : .75000
' '' 1.00000
0 CD .00396
1000 CD .00793
13 CD .00793
13th JJ .00073
36
29
16 CD .00396
17 CD .00396
以前のファイルにあります。
これらの数字はなぜ表示されますか?これらの行を削除する方法はありますか? ありがとうございます!
番目は何ですか実際のファイル名ですか?安全のために変数を二重引用符で囲む: '' $ 2 ''。 – choroba
なぜ実際のファイルのいくつかの行を投稿しないのですか?あなたは、 '-x'オプションや' echo -e "> $ token <\t> $ count <\t> $ postcount <" 'のようなトリックを使って自分のスクリプトをデバッグしようとしましたか?言い換えれば、 'count'と' postcount'の値を調べていないときに、 ''乱数を生成する部分であることがどうして分かりますか? – Jdamian
おそらく原因: 'grep"^$ pos "$ 2 |切断-f 2 ';いくつかの行が '$ pos'の特定の値で始まる場合、' grep'はそれらすべてを見つけるでしょう。 – agc