Tuesday, March 23, 2010

AWK basics

command: awk 'pattern {expression} [; ptrn {exp}]'
default-pattern: 1
default expression: print
hence,
  '1' ~ '{print}' ~ '{print $0}' ~ '1 {print $0}

patterns:
BEGIN at file begin
END at file end
/match-pattern/ for string matching

Default vars:
NF: nOf fields
NR: nOf record so far
FNR: file's nOf record so far
length(): nOf letters
FS & OFS: field separator
RS & ORS: record separator
FILENAME


c-like code:

'{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }'
'{ printf("%5d : %s\n", NR, $0) }' 
for(i=1;i<=NF;i++) if($i~/[0-9]+/) $i=""; 

 
String utility:
substitute: '{ sub(/pattern/, "replacement'); print }'
or gsub for substitute all

No comments:

Post a Comment