jotne posted an interesting thread an hour or two ago, and ended up with the following:
awk '{$1=$1} /^[0-9]+$/' file
I had a question about the effect of $1=$1 assignment, and thought it better to start a new thread, because it's really a different topic.
$ cat test.sh
set -v
echo " abcd" | awk '{ print ":" $0 ":" }'
echo " abcd" | awk '{ print ":" $1 ":" }'
echo " abcd" | awk '{ $0=$0; print ":" $0 ":" }'
echo " abcd" | awk '{ $0=$0; print ":" $1 ":" }'
echo " abcd" | awk '{ $1=$1; print ":" $1 ":" }'
echo " abcd" | awk '{ $0=$1; print ":" $0 ":" }'
echo " abcd" | awk '{ $0=$1; print ":" $1 ":" }'
echo " abcd" | awk '{ $1=$0; print ":" $0 ":" }'
echo " abcd" | awk '{ $1=$0; print ":" $1 ":" }'
echo " abcd" | awk '{ $1=$1; print ":" $0 ":" }'
$ ./test.sh
echo " abcd" | awk '{ print ":" $0 ":" }'
: abcd:
echo " abcd" | awk '{ print ":" $1 ":" }'
:abcd:
echo " abcd" | awk '{ $0=$0; print ":" $0 ":" }'
: abcd:
echo " abcd" | awk '{ $0=$0; print ":" $1 ":" }'
:abcd:
echo " abcd" | awk '{ $1=$1; print ":" $1 ":" }'
:abcd:
echo " abcd" | awk '{ $0=$1; print ":" $0 ":" }'
:abcd:
echo " abcd" | awk '{ $0=$1; print ":" $1 ":" }'
:abcd:
echo " abcd" | awk '{ $1=$0; print ":" $0 ":" }'
: abcd:
echo " abcd" | awk '{ $1=$0; print ":" $1 ":" }'
: abcd:
echo " abcd" | awk '{ $1=$1; print ":" $0 ":" }'
:abcd:
Each one makes perfect sense to me, except for the last one. Could someone explain why $1=$1 results in blanks being removed from $0 var? What is going on behind the scene?
I'm sure this has been discussed before, but I could not find it on searching the forum archives. It disallowed the word "itself".