I am trying to sum certain numbers in a column using awk. I would like to sum just column 3 of the smiths to get a total of 212. I can sum the whole column using awk but not just the smiths. I have:awk 'BEGIN {FS = |} ; {sum+=$3} END {print sum}' filename.txtAlso I am using putty. Thank you for any help.smiths|Login|2olivert|Login|10denniss|Payroll|100smiths|Time|200smiths|Logout|10
Using awk to sum the values of a column, based on the values of another column
linux;awk
awk -F '|' '$1 ~ /smiths/ {sum += $3} END {print sum}' inputfilenameThe -F flag sets the field separator; I put it in single quotes because it is a special shell character.  Then $1 ~ /smiths/ applies the following {code block} only to lines where the first field matches the regex /smiths/.  The rest is the same as your code.Note that since you're not really using a regex here, just a specific value, you could just as easily use:awk -F '|' '$1 == smiths {sum += $3} END {print sum}' inputfilenameWhich checks string equality.  This is equivalent to using the regex /^smiths$/, as mentioned in another answer, which includes the ^ anchor to only match the start of the string (the start of field 1) and the $ anchor to only match the end of the string.  Not sure how familiar you are with regexes.  They are very powerful, but for this case you could use a string equality check just as easily.