0

awkを実行しているさまざまな情報を含む配列のリストがあります。

number  location  length  value

 1        2         40     0.96
---       5         45     0.97
 4        5         47     0.96
---       5         35     0.95
 2        5         60     0.95
---       3         55     0.96


awk '{if ($2=5 && $3 >= 40 && $3<=50 && $6>=0.96) print $0}' Infile.txt

それは私に正しい行--- 5 45 0.974 5 47 0.96. ただし、次のような別の条件を追加したい場合$1= ---は、最初の出力のみを取得します--- 5 45 0.97

 awk '{if ($2=5 && $3 >= 40 && $3<=50 && $6>=0.96 && $1="\-\-\-") print $0}' Infile.txt >List_position.txt

1 5 45 0.97これは置換として機能し、前の出力をandとして返し1 5 47 0.96ます。で試しましたが$1=---$1='\-\-\-'どちらも機能しませんでした。で試してみると$1="---"、$1 が に置き換えられ---ます。

私は awk が初めてで、なぜそれが置換を行うのか本当にわかりません。が awk の置換である場合" "、どうすれば条件を付けることができ---ますか?

4

1 に答える 1

3
于 2013-06-19T15:56:52.483 に答える