ファイルには200行があり、各行は同じです。
first,second,third
私が走るとき
awk -F"," '{$2="new second";print $0 > FILENAME}' OFS="," test
私は214の行を得る。最後の16行
201 ,new second,third
202 first,new second,third
203 first,new second,third
204 first,new second,third
205 first,new second,third
206 first,new second,third
207 first,new second,third
208 first,new second,third
209 first,new second,third
210 first,new second,third
211 first,new second,third
212 first,new second,third
213 first,new second,third
214 fi,new second
私は結果が何度も不正確であることを意味するこのような状況に直面しました。毎回行番号が減ります。ただし、この例では行番号が増加し、一部の行が間違っています。
,new second,third
fi,new second
ベストアンサー1
処理中に同じファイルにリダイレクトすると、奇妙な結果になります。
元のファイルを上書きするには、出力を新しいファイルにリダイレクトしてから再度移動できます。
awk -F"," '{$2="new second";print > FILENAME".new"}' OFS="," test && mv test.new test
または
awk -F"," '{$2="new second";print}' OFS="," test > test.new && mv test.new test