On Thursday 29 May 2008 19:44, kj wrote: > [...] > >> I'm trying to make three columns out of a postfix mail log. Queue > >> ID, From address, and remote server response for certain > >> situations (it's already grepped down to that). > >> > >> awk '{print $7" "$6" "$17}' > >> > >> $17 is the first word of the remote server response, I need to > >> include everything from $17 onwards to the end of the line into > >> the third field. > [...] > I did figure it out,eventually. This is ugly, and most likely the > wrong way to do it, but it works. It sorts it in order of the sender: > > grep bounced /var/log/mail.log | awk '{printf "%s, %s ", $6,$7; { for > (i=17; i<=NF; i=i+1) printf "%s ", $i } print "\n"}' | sed -e > 's/:,/,/' -e 's/to=<//' -e 's/>,/,/' | grep -v ^$ | sort -k2 > > /home/kj/bounces.csv
Out of curiosity I tried a different way, using 'cut' and without using 'awk'. Here is an example pipeline: $ echo word1 word2 word3 word4 word5 word6 word7 word8 server message here | cut -d " " -f "3,5,9-" | sed -e 's/ /,/1' -e 's/ /,/1' word3,word5,server message here $ Best regards, Alfredo -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]