0

次の問題があります。私はこのようなファイルを持っています:

134 Apple
345 Strawberries
45 Pears
1450 Oranges

私がやりたいのは、各行を読み取ることです。値が上記の場合、たとえば70の場合、次のような別のファイルに文字列を書き込みます。

134 Apple
345 Strawberries
1450 Oranges

キーは行を読んでいる間のコマンドだと思いますが、それらを組み合わせる方法がわかりませ

私は試しました(「ifコマンド」でプロンプトをファイルに送信する方法がわからないため、結果を視覚的に印刷するだけです)

READ=awk '{print $1}' mylist.txt
if [ $READ -gt 70]; then echo "you have more that 70 fruits"
fi

しかし、(私が思うに)「数字」だけでなく「単語」も読み取るか、一意の数字だけでなくすべての数字を読み取るため、機能しません。それは私にこのエラーを与えました:「単項演算子が期待されます」

4

2 に答える 2

1
while read count fruit ; do
  if [ $count -gt 70 ]; then
    echo $count $fruit
  fi
done < mylist.txt > newlist.txt

newlist.txtに出力を書き込みます。

「単項演算子が期待されます」と表示される理由は、すべての数値がREAD変数に並べられているため、ifステートメントは次のようになります。

if [ 134 345 45 1450 -gt 70]; then

どのbashが解釈方法を知らないか。

于 2013-03-07T15:19:25.703 に答える
1

このワンライナーでそれをやってみませんか:

awk '($1+0)>70{print > "new.txt"}' file
于 2013-03-07T15:31:09.500 に答える