title: Use of `NF` in awk command
body: <p>I am trying to understand what is the difference between two command (I was expecting same result from the two):</p>
  
  <p>Case-I</p>
  
  <pre><code>echo 'one,two,three,four,five' |awk -v FS=,  '{NF=3}1'
  one two three
  </code></pre>
  
  <p>Case-II</p>
  
  <pre><code>echo 'one,two,three,four,five' |awk -v FS=,  -v NF=3 '{$1=$1}1'
  one two three four five
  </code></pre>
  
  <p>Here is my current understanding: 
  <code>$1=$1</code> is used to force awk to reconstruct and use the variables defined. I am assigning <code>FS</code> like <code>-v FS=","</code> which is in effect unlike <code>-v NF=3</code>  . </p>
  
  <p><em>Question: Why <code>NF=3</code> is not taking effect where as <code>FS=,</code> does.</em> </p>