I'm writing a basic script where I want to make a string of 2 numeric fields from a file, which I have done, but the behavior is rather confusing.
I have a file of random values such as:
1 2
3 4
5 6
7 8
9 10
and my awk code is:
BEGIN { FS = " " }
{ str = str $1 $2 }
END { print str }
This gives me an output of 910, whereas what I would expect is 12345678910.
If I add $2++;$2-- before I do the string concatenation, I get the expected result, but not if I put $1++;$1--. Is there an explanation for this?
Your awk code snippet works perfectly the way you expect. I suspect there to be <CR> <carriage return> chars in the input file (originating from windows?), so you output 12<CR>34<CR>56<CR>78<CR>910<CR><LF> to screen, leaving only 910 visible. $2++$2-- would modify $2 and thus remove the <CR>.