Awk question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk question
# 1  
Old 11-30-2005
Awk question

I have an inpit file that looks like the following:
VDL20039 [CDL_L700_LIB: 40] VPROD 12/23/05 20:01:07 198713.31 198713.31 11/25/05

I'm currently using this command, which seem to work fine
cat VPROD|awk 'BEGIN {i=1} {while (i <= 4){if($8 == $9){print "\t"$3,$4; ++i}getline}}'|cut -c 17-18`

Which end result is just the 40

A command line string that resembles
omnimcopy -src_slot

My question is I want to preceed each line with the above

omnimcopy -src_slot 40
omnimcopy -src_slot 41
omnimcopy -src_slot 42

How do I do something like this using awk?
# 2  
Old 11-30-2005
Try this; there is no need to use cut, and awk loop, and getline:

Code:
nawk '$7 == $8 {
    gsub(/]/,"",$3)
    print "omnimcopy -src_slot "$3
}' VPROD

Your example shows $7 equaling $8 so I used those instead of $8 and $9
# 3  
Old 11-30-2005
or slightly different:
Code:
nawk -F '([]]| )' '$8 == $9 {print "omnimcopy -src_slot " $3}' VPROD

# 4  
Old 11-30-2005
Awk

1st replay works fine,although I get an extra line at the end
omnimcopy -src_slot
Not needed

2nd cmd $4 should be the output , but it's not.

Really helpful

My whole goal is to get a string that follows:

omnimcopy -from Some_Drive -src_slot Source data -slot Target_slot -copy Target_Drive -label Header_Infor -until expiration
SOURCE_DR=`/usr/sbin/mc -p /dev/rac/c13t0d0 -r D|awk '{if($2 == "EMPTY") {gsub("DT_slot","VTAKSSAP1_LTO2",$1) gsub("EMPTY","");printf("%
14s", "omnimcopy -from " $1"\n")}}'`
SOURCE_SL=`cat VPROD|awk 'BEGIN {i=1} {while (i <= 4){if($8 == $9){printf("%9s", " -src_slot " substr($4,1,length($4)-1)"\n"); ++i}getli
ne}}'`
TARGET_DR=`/usr/sbin/mc -p /dev/rac/c11t12d0 -r D|awk '{if($2 == "EMPTY") {gsub("DT_slot","TAKSSAP1_LTO2",$1) gsub("EMPTY","");printf("%
7s", " -copy " $1"\n")}}'`
TARGET_SL=`omnimm -list_scratch TAK_PROD|grep LSLMSL1|awk 'BEGIN {i=1} {while (i <= 4){printf("%7s", " -slot " $5"\n"); ++i getline}}'`
POOL=`echo " -pool TAK_PROD \n"`
LABEL=`omnimm -list_scratch TAK_PROD|grep LSLMSL1|awk 'BEGIN {i=1} {while (i <= 4){printf("%8s", " -label " $3"\n"); ++i getline}}'`
PROTECTION=`cat VPROD|awk 'BEGIN {i=1} {while (i <= 4){if($8 == $9){printf("%8s", " -until " $6"\n"); ++i}getline}}'`

echo "$SOURCE_DR\t\t$SOURCE_SL\t\t$TARGET_DR\t\t$TARGET_SL\t\t$LABEL\t\t$PROTECTION\n"


I know it's really not ledgeable , but the intent is to get the following:
omnimcopy -from -src_slot -copy -pool -until

HELP
# 5  
Old 11-30-2005
here's the cleaned-up version of one of your lines. See if you can clean up and debug the rest of them:
Code:
#!/bin/ksh

SOURCE_SL=$(awk 'FNR <= 4 && ($8 == $9) {printf(" -src_slot %s ", substr($4,1,length($4)-1))}' VPROD)


Last edited by vgersh99; 12-01-2005 at 02:04 PM..
# 6  
Old 12-01-2005
Any updates

The following is the output I am try'ing to achieve, although there several
command issue'd to get the out. I would like to somehow get this info
line by line.

-src_slot 18
-src_slot 40
-src_slot 37
-src_slot 4
-copy TAKSSAP1_LTO2_3 -slot 40
-slot 42
-slot 39
-slot 38 -label LD0288L2
-label LD0295L2
-label LD0282L2
-label LD0219L2 -until 12/23/05
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk question : system output to awk variable.

Hi Experts, I am trying to get system output to capture inside awk , but not working: Please advise if this is possible : I am trying something like this but not working, the output is coming wrong: echo "" | awk '{d=system ("date") ; print "Current date is:" , d }' Thanks, (5 Replies)
Discussion started by: rveri
5 Replies

2. Homework & Coursework Questions

awk question.

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: im using ls -l | xargs | awk '{what ever files here}' im trying to get something that looks like this... (7 Replies)
Discussion started by: rontopia
7 Replies

3. UNIX for Dummies Questions & Answers

Basic awk question...getting awk to act on $1 of the command itself

I have a script problem that I am not able to solve due my very limited understanding of unix/awk. This is the contents of test.sh awk '{print $1}' From the prompt if I enter: ./test.sh Hello World I would expect to see "Hello" but all I get is a blank line. Only then if I enter "Hello... (2 Replies)
Discussion started by: JasonHamm
2 Replies

4. UNIX for Dummies Questions & Answers

awk question

Can anyone help with this this one liner: nawk -v RS='' '$1=$1' InputFile What I have in the file: 0.0013985457223116 -0.0002338180925628 0.0 0.0003709430584958 -0.0005763523138347 0.0 And the output I want: 0.0013985457223116 -0.0002338180925628 0.0 0.0003709430584958... (1 Reply)
Discussion started by: mookie123
1 Replies

5. UNIX for Dummies Questions & Answers

awk question

Hi, in the following script, what does " a=$0} END " mean ? do we need that ? Thanks awk '{a=$0} END {for (i=NR; i>=1; i--) print a}' file (3 Replies)
Discussion started by: james94538
3 Replies

6. Shell Programming and Scripting

Awk Question

How I can rid of the following presentation du -sk /u*/oradata/TEST/*.dbf |awk '{print total+=$1} 1.28003e+06 4.35109e+06 4.36134e+06 4.4535e+06 5.47752e+06 5.48777e+06 7.52554e+06 7.73036e+06 9.06158e+06 :confused: thank you (3 Replies)
Discussion started by: zam
3 Replies

7. Shell Programming and Scripting

awk question

I am trying to read through a file, gather the states in that file and change it from an abbreviation to the ful text. Can anyone provide some assistance. Thanks!! (4 Replies)
Discussion started by: cnitadesigner
4 Replies

8. Shell Programming and Scripting

awk .. question?

i have a little awk script that I use looks this: awk '{if (FNR==1){print FILENAME; print $0}else print $0}' file1...file2....fi... > bundled. i have completely forgotten how to unbundle this. I have tried several different approaches and still can not remember how to unbundle the file bundled.... (2 Replies)
Discussion started by: moxxx68
2 Replies

9. Shell Programming and Scripting

One more awk question!

Hello, I have the following command that does 2 searches. awk '{if ($0 ~ /STRING1/) {c++} }{if ( c == 2 ) {sub(/STRING1/,"NEWSTRING") } } { print }' FILE How do I search up after the first search? thanks (4 Replies)
Discussion started by: ctcuser
4 Replies

10. Shell Programming and Scripting

awk question

I have the following error: ls -lt | awk 'BEGIN NR > 1 { print $2, $9 }' Syntax Error The source line is 1. The error context is BEGIN >>> NR <<< > 1 { print $2, $9 } awk: 0602-500 Quitting The source line is 1. What I want to do is ls a directory, skip the first... (3 Replies)
Discussion started by: lesstjm
3 Replies
Login or Register to Ask a Question