awk print behavior weird


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk print behavior weird
# 1  
Old 12-23-2010
awk print behavior weird

Hi Experts
I am facing a weird issue while using print statement in awk. I have a text file with 3 fields shown below:

Code:
[root@gpr ~]# cat f1
234,abc,1000
235,efg,2000
236,jih,3000
[root@gpr ~]#

When I print the third column alone, I dont face any issue as shown below:

Code:
[root@gpr ~]# awk '{print $3 }' FS=, f1
1000
2000
3000
[root@gpr ~]#

However, when I try to put an extra character after printing say a semicolon, I get some weird output as shown below:

Code:
[root@gpr ~]# awk '{print $3 ";" }' FS=, f1
;000
;000
;000
[root@gpr ~]#

Not sure what is going wrong. However, when I try the same above thing with the 1st or second field in place of $3, it has no issues and works fine. The issue is only with the last field. I am working on Red Hat Linux.

Guru
# 2  
Old 12-23-2010
Hi.

You have ^M characters in your input file?

I get normal (expected) output, then added ^M characters and got:

Code:
awk '{print $3 ";" }' FS=, file1
;000
;000
;000

This User Gave Thanks to Scott For This Post:
# 3  
Old 12-23-2010
Hi Scottn
Thanks for your answer, you are right. I ran the dos2unix command on the file and then I got the output as expected. However, I have a couple of questions:

1. I created this file manually, not FTPed from windows. So, how is it possible it put ^M at the end?


2. When I opened the file manually, usually we should be able to see ^M if present. However, it was not visible at all, even with set list. How is it possible?

Guru.
# 4  
Old 12-23-2010
Hi Guru.

The answer to both of your questions might relate somehow to your terminal software. I have never experienced such a thing, so cannot really say exactly what happened.

Hopefully someone will come along soon and give you an answer.

It is repeatable (the ^M issue)? If you create a brand new file, does it happen again? If so, perhaps have a look in your terminal settings for something.
# 5  
Old 12-23-2010
Hi Scottn
I think I got the issue. For saving any file, I use the F2 keywhich is mapped to :wq!. My .exrc file reads something like this ( i have an explicit ^M below to get the enter):

Code:
map #2 :wq!^M

It could be that when I press F2 to save at the end, it somehow puts the ^M at the end of every line I believe. However, the same kind of setting I use in my Solaris and HP-UX boxes where I never faced any issue like this.

Do you think this could be the issue?

Guru.
# 6  
Old 12-23-2010
Hmm. I just tried that in .exrc on AIX, Solaris and RHEL, and nothing special happened. It saved the file and quit with no adverse affects.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Commenting out "expr" creates weird behavior

This really puzzles me. The following code gives me the error 'expr: syntax error' when I try to do multi-line comment using here document <<EOF echo "Sum is: `expr $1 + $2`" EOF Even if I explicitly comment out the line containing the expr using "#", the error message would still exist... (3 Replies)
Discussion started by: royalibrahim
3 Replies

2. UNIX for Dummies Questions & Answers

Weird behavior of Vi

Hi there, I am a bit puzzled by a weird behavior of Vi. I very simply would like to add increased numbers in some files. Since I have many thousands entries per file and many files, I would like to macro it in vi. To do this, I enter the first number ("0001") on the first line and then yank... (4 Replies)
Discussion started by: hypsis
4 Replies

3. UNIX for Advanced & Expert Users

Weird TR behavior. Replacing two instance

Can someone please explain what's wrong with the command i use below? tr -c '\11\12\40-\176' ' '< $TEMP_FILE > $TEMP_FILE2 The invalid character/s is replaced with two spaces, the string2 only have 1 space in it. Please help. Sample output: 333243,333244c333243,333244 < ... (1 Reply)
Discussion started by: Jin_
1 Replies

4. UNIX and Linux Applications

weird yum behavior with provides and install

Why could whatprovides not lookup this info for over 10 minutes, but install could install that package in less than a minute? $ yum whatprovides */lsb_release Loaded plugins: langpacks, presto, refresh-packagekit, versionlock ^Cupdates/group 18% 3.1 kB/s | 360 kB 08:28 ETA ... (0 Replies)
Discussion started by: cokedude
0 Replies

5. UNIX for Dummies Questions & Answers

Weird behavior of backslash, please help!!

Hi I am getting absurd behavior of escape character in echos as followed:oinlcso003{arsadm} #: echo "\as shdd" \as shdd oinlcso003{arsadm} #: echo "Well, isn't that \"special\"?" Well, isn't that "special"? oinlcso003{arsadm} #: echo "Well, isn't that \special\?" Well, isn't that \special\?... (3 Replies)
Discussion started by: nixhead
3 Replies

6. UNIX for Dummies Questions & Answers

Weird home key behavior

Hi there, I'm using putty to connect to several servers. On every remote machine, the home key takes me at the beginning of a command line. Exept on one machine where a press on the home key outputs the tilde sign (~). Is there any place where I can override this behavior, I really prefer my... (6 Replies)
Discussion started by: chebarbudo
6 Replies

7. UNIX for Dummies Questions & Answers

Weird Behavior of a Script

ok, there's a script i'm working on written in shell programming. #!/bin/sh this script is written to spit out the contents of certain variables inside of it so the output looks something like this: server01=89 server02=69 server03=89 server04=76 now, when i run this script from the... (4 Replies)
Discussion started by: SkySmart
4 Replies

8. OS X (Apple)

Weird rsync behavior

I use rsync to keep a directory in synchronization betwen a Linux box with the hostname brutal and a Mac running OS X 10.5 (Leopard) with the hostname cooper. When I run the following command on my Linux machine: rsync -avz --delete myuserid@cooper:/Library/WebServer/Documents... (2 Replies)
Discussion started by: scotbuff
2 Replies

9. Shell Programming and Scripting

weird behavior of grep -P

I met a problem in using grep -P. There is a text file, temp.txt, whose content is: dddd abc I ran the command: grep -P "\s*abc" temp.txt The result I expected is: abc But, the actual result is: dddd abc Could anyone tell me what is wrong? Thanks. (2 Replies)
Discussion started by: pankai
2 Replies

10. Solaris

Weird behavior on a Sun Fire V120 running solaris 10.

All, After a power loss I went to power on our sun fire v120 that is running solaris 10 and now it will not boot. I tried power cycling it from the lom and pulling the cord but nothing works. All it does is after a power cycle it will start to boot and then start to spit out a bunch of hex... (2 Replies)
Discussion started by: jsandova
2 Replies
Login or Register to Ask a Question