problem with awk usage


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting problem with awk usage
# 1  
Old 04-09-2010
problem with awk usage

I have to change the 4th feild of a line; Most of the time, the line has only 4 feilds, but sometimes, it has more than 4 feilds.

I am using the below command:
Code:
NEW_LINE=`echo $Line | awk '{sub ($4, "2010\\\/04\\\/07"); printf "# %-7s %9s %18s\n", $2,$3,$4}'`

This works fine but if the line has more than 4 feilds, it eats the other feilds following 4th feild.

Ex: I have a line as shown below:
Code:
# seh         Lane        2010/02/17      retrieve 0 rows from US FIW on 2009/06/11

I am getting the output as:
Code:
# seh         Lane        2010/04/07

Is there a way to have the entire line. Please note that I have to format the other feilds before printing.

Thanks,
Sugan
# 2  
Old 04-09-2010
Assign the value to the 4th field as:
Code:
awk '{$4="2010/04/07"; printf "# %-7s %9s %18s\n", $2,$3,$4}'

# 3  
Old 04-09-2010
Sorry. I cant understand what you are saying.

I have a line with many feilds; I need to modify the 4th feild, format the 2, 3, and 4th feild and want to print the rest of the line (other feilds after 4th feild) as such.

Is there a way to do this.
# 4  
Old 04-09-2010
Quote:
Originally Posted by sugan
Sorry. I cant understand what you are saying.

I have a line with many feilds; I need to modify the 4th feild, format the 2, 3, and 4th feild and want to print the rest of the line (other feilds after 4th feild) as such.

Is there a way to do this.
One way:
Code:
awk '{$4="2010/04/07"; printf "# %-7s %9s %18s", $2,$3,$4}{$1=$2=$3=$4=""; sub("   ",""); print}'

# 5  
Old 04-09-2010
Thanks very much. It works. But I got into another problem.
Here is my code:
Code:
NEW_LINE=`echo $Line | awk '{sub ($4, "2010\\\/04\\\/07"); printf "# %-7s %9s %18s\n", $2,$3,$4}' {$1=$2=$3=$4=""; sub("   ",""); print}'`
      sed $n" s/.*/$NEW_LINE/" kfile > tmp

Most of the time, when the number of feilds exceed, it has a date part in it in the format, 'yyyy/mm/dd'. The sed command that comes next, fails due to this date format.

Any idea how to handle this.
# 6  
Old 04-09-2010
Given this as input:
Code:
# seh         Lane        2010/02/17      retrieve 0 rows from US FIW on 2009/06/11

What should be the output (end result) in the file tmp?
# 7  
Old 04-09-2010
The output in the tmp file should be the same with the 4th feild changed. I am using sed to replace the existing line with the new line. When the new line has dates in the format 'yyyy/mm/dd' sed throws error.

Here is my code:
Code:
 elif [ $1 != 'Cindy' -a  `echo $Line | grep -ce 'Larry' -e 'Joe' -e 'Bryan' -e 'Lane'` -gt 0 ]
    then
      NEW_LINE=`echo $Line | awk '{sub ($4, "2010\\\/04\\\/07"); printf "# %-7s %9s %18s\n", $2,$3,$4} {$1=$2=$3=$4=""; sub("   ",""); print}'`
      sed $n" s/.*/$NEW_LINE/" kfile > tmp
      mv tmp kfile
    fi

Here is the error msg I get:
Code:
sed: 0602-404 Function 167 s/.*/# seh          Lane       2010\/04\/07 retrieve 0 rows from US FIW on 2009/06/11/ cannot be parsed.

In the above code, when the new line has dates in the format 'yyyy/mm/dd' after 4th feild, I have a problem with sed.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk usage

Hi I have a file like this user="joe" phone="4280919" duration=128 login=12/02/2016 ip-address=10.230.120.35 user="mary" phone="6352728" duration=23 login=16/02/2016 ip-address=10.123.231.54 I have to convert these to as follows (csv format) (Ignore Login field)... (6 Replies)
Discussion started by: Balav
6 Replies

2. Shell Programming and Scripting

Usage of Int with NR in awk

Hello Everyone, I am new to awk and trying my hand with the diff codes and came across the below code today. It would be great if any of the Guru's help me to understand. awk '{filename = "sample_file" int((NR-1)/34) ".DAT"; print >> filename}' sample_file.DAT 34 is the no of lines each... (7 Replies)
Discussion started by: saratha14
7 Replies

3. UNIX for Dummies Questions & Answers

awk FS usage problem

Hi All, I have a question about the usage of FS in awk and i appreciate if you can help me sort out what i'm doing wrong. I have a file with info ; separated and i just want to print the o/p of all fields ($1 -> $8) to the screen. As you can see it is very simple but i'm facing an error. ... (5 Replies)
Discussion started by: Dendany83
5 Replies

4. Shell Programming and Scripting

Problem in file usage option

Hi, I have a dout in -u option in ls command. If we give ls -lt command it will dispaly the last modfied time. If we give ls -lu command it will display the last usage time of the file. My doubt here is Please refer the below commands. /appldata/rsc/dm/RejectData$ls -lt... (6 Replies)
Discussion started by: puni
6 Replies

5. AIX

How to monitor the IBM AIX server for I/O usage,memory usage,CPU usage,network..?

How to monitor the IBM AIX server for I/O usage, memory usage, CPU usage, network usage, storage usage? (3 Replies)
Discussion started by: laknar
3 Replies

6. Shell Programming and Scripting

usage of underscore in awk

Hi what is the purpose of using underscore in awk. I suppose it is for defining macro's and reducing repeatation but can some one show me an example? (6 Replies)
Discussion started by: ahmedwaseem2000
6 Replies

7. HP-UX

how can I find cpu usage memory usage swap usage and logical volume usage

how can I find cpu usage memory usage swap usage and I want to know CPU usage above X% and contiue Y times and memory usage above X % and contiue Y times my final destination is monitor process logical volume usage above X % and number of Logical voluage above can I not to... (3 Replies)
Discussion started by: alert0919
3 Replies

8. Programming

Problem in CPU usage

Hi all, I have C++ program that is running on linux on an ARM processor. The program is sending voice to a specific ip. When i started the program, 2 threads are running and sending voice over ip. Each of the threads are at %0.2 CPU usage which is very normal. My problem is, CPU usage is... (4 Replies)
Discussion started by: gokaytos
4 Replies

9. AIX

Netstat usage problem

Hi everyone. I need some way to map individual connections listed in netstat to PID seen by the AIX. In linux this can be done by using netstat -np. Is there a swich in AIX netstat which I have not yet found regarding this or does anyone know if "GNU" netstat has been compiled for AIX in... (1 Reply)
Discussion started by: sprellari
1 Replies

10. UNIX for Dummies Questions & Answers

AIX disk usage problem

ENV: AIX 4.3 / rs6000 while running a program our root (/) directory fills up. I simply can't find where this file is located. Doing a df . insite the program gives the following output: during run of program /dev/hd4 65536 33144 50% 953 6% / after run of program... (1 Reply)
Discussion started by: progressdll
1 Replies
Login or Register to Ask a Question