panknil
December 21, 2007, 2:44am
1
Dear All,
i have a awk script and where i want to do all the operation in inside the awk script itself...like i have to pick a certain column then have to delete the trailing space of that column and then have to proceed...
i have tried with sub function but every time i'm getting wrong out put
for e.g.
myfile name is XYZ.txt
here the data of the file
6622880188|2 |5265510105746
6461082164|3 |5265510105746
inside the awk script i want to pick the 2nd field and want to delete the trailing space of 2nd filed.
can any body plz help...
i'm placing my sample script also
awk -v DATE="$CURRDATE" -F'|' 'BEGIN {
while(( getline < "XYZ.txt" ))
{
VALUE=$2 sub(/[ \t]+$/,VALUE "")
print VALUE
.......
.......
}
}' >> FILE_OUT_FINAL.txt
thanks,
Regards,
Pankaj
GNU awk
awk 'BEGIN{FS="[| ]"} {print $2, length($2)}' file
or
awk 'BEGIN{FS="|"}
{
sub(/ +/,"",$2)
print $2
}
' file
panknil
December 21, 2007, 3:50am
3
Dear ghostdog,
thanks for ur reply...
but i'm getting one problemm here...its giving extra number 1
e.g
2
1
3
1
4
1
like this
i'm really soory but i'm not getting the problem. can u plz help?
Thanks,
Regards,
Pankaj
panknil
December 21, 2007, 4:23am
4
Dear ghostdog,
after deleting the spaces of the 2nd field the delimiter of the file getting changed...
i want to keep the delimiter as it was
plz help regarding this...
Thanks,
Regards,
Pankaj
Muni
December 21, 2007, 5:11am
5
use the following:
awk 'BEGIN{FS="[| ]"} {print $2}' file
If you have one space in your file:
awk '{print $1$2}' file
Regards
Use OFS. Read here for more info. Then try to put it inside this code. Have a shot at it. good luck
awk 'BEGIN{FS="|"}
{
sub(/ +/,"",$2)
print $0
}
' file1