AWK Problem Need Help!

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK Problem Need Help!
# 1  
Old 02-16-2008
AWK Problem Need Help!

I have a problem that I have not be able to get solved. First of all the script I am writing is for a Windows server. I am trying to write a script that will connect to a ISCSI SAN and locate the last Snapshot for that server and mount it for a backup. In order to capture the screens I have been redirecting the output to a text file then using CYGWIN and GAWK to parse the file and extract the information I need to pass into another file which is named a bat file which is executed for the next step. I have everything working except the last critical step. When I connect to the snapshot the volume does not mount with a drive letter. When I run a diskpart I can see the disk number (without a letter). I then need to run a few diskpart commands to connect to the volume before I can assign a letter of my choice.

Now for the issue. The output of the file is a follows:

Volume 0<sp> Data NTFS Partition 400 GB Healthy
Volume 1 Z <sp><sp> DVD-ROM 0 GB Healthy
Volume 2 C <sp> NTFS Partition 21 GB Healthy System
Volume 3 D Data1 NTFS Partition 115 GB Healthy
(<sp> is there only to indicate there is a blank space)

What I need to do is extract the line that does not have a drive letter. I would like to use awk for this. The problem is that this line is not always the first line nor Volume 0. The only thing that is constant is that is will not have a drive letter. When I try a $3 for the third field it treats the word Data as the third field since its blank. I was hopeing something like

$3 // { print $1, $2 }

Can any one help?
# 2  
Old 02-16-2008
awk '!/^Volume [0-9] [A-Z]/ { print($1,$2) }' input_file

# 3  
Old 02-16-2008
Originally Posted by robotronic
awk '!/^Volume [0-9] [A-Z]/ { print($1,$2) }' input_file

I ran that and what I get is the following on one line:

Volume 0 Volume 1 Volume 2 Volume 3.

What I need dispayed is only the Volume that does not have a drive letter.
# 4  
Old 02-16-2008
As far as the awk above is concerned Volume 0 Data is the same as Volume 0 D.
Does the word "Data " always appear for any volume you need? I see Data1.
# 5  
Old 02-16-2008
It can depending on what volume is being mounted. The only thing that is unique is the one that needs to be mounted does not have a drive letter.
# 6  
Old 02-16-2008
My bad I had a { rather than a [ in the A-Z search. It is working now...

Thanks! I realy appreciate the help.
# 7  
Old 02-16-2008
I tweeked some things and I think I got it working but I need help with the output

This is what I got.

$3 !~/^[A-Z]$/ { print "Select " $1, $2 ; print "Assign " ENVIRON["BCKDRIVE"] }
(all on one line)
This prints the following:

Select Volume 0 Assign K:

What I need is for the Assign K: to be on a new line

Select Volume 0
Assign K:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk problem

Hi I have two columns and I would like to create a third column based on how many lines away from a value of 1 in column 2, for example I have 1,0 2,0 3,0 4,0 5,0 6,1 7,0 8,0 9,0 10,0 11,1 And I want an output (6 Replies)
Discussion started by: garethsays
6 Replies

2. Shell Programming and Scripting

awk problem

i have an email list in file.txt with comma separated line1 - FIELD1,, line2 - FIELD2,,, output=(awk -F ',' -v var="$awkvar" '$1==var {print $2,$3,$4}' spreadsheet.txt)but awk delete some letters at the... (8 Replies)
Discussion started by: pasaico
8 Replies

3. Shell Programming and Scripting

awk problem - combining awk statements

i have a datafile that has several lines that look like this: 2,dataflow,Sun Mar 17 16:50:01 2013,1363539001,2990,excelsheet,660,mortar,660,4 using the following command: awk -F, '{$3=strftime("%a %b %d %T %Y,%s",$3)}1' OFS=, $DATAFILE | egrep -v "\-OLDISSUES," | ${AWK} "/${MONTH} ${DAY}... (7 Replies)
Discussion started by: SkySmart
7 Replies

4. UNIX for Dummies Questions & Answers

Little problem with AWK

I thought I had solved this problem but after testing the script I came to realize that it is not doing what I need. So, here it goes again. This is the code: awk '/\>/{F=$2; N=$3; split(FILENAME, A, "."); getline; x = ">"}{print ">" A"-" x++" "F" " N"\n" $0}' This is the input file: ... (5 Replies)
Discussion started by: Xterra
5 Replies

5. Shell Programming and Scripting

awk problem

Find the number of files with sizes > 100KB in /, /bin, /usr, /usr/bin and /usr/sbin directories and output them in a two column format with the name of the directory and the number of files. i tried with awk $>ls -lh | awk '/^-/ && $5 >= 100k {print $8 $5}' but it is not working pls tell... (3 Replies)
Discussion started by: abhikamune
3 Replies

6. Shell Programming and Scripting

Problem with awk awk: program limit exceeded: sprintf buffer size=1020

Hi I have many problems with a script. I have a script that formats a text file but always prints the same error when i try to execute it The code is that: { if (NF==17){ print $0 }else{ fields=NF; all=$0; while... (2 Replies)
Discussion started by: fate
2 Replies

7. Shell Programming and Scripting

Awk problem: How to express the single quote(') by using awk print function

Actually I got a list of file end with *.txt I want to use the same command apply to all the *.txt Thus I try to find out the fastest way to write those same command in a script and then want to let them run automatics. For example: I got the file below: file1.txt file2.txt file3.txt... (4 Replies)
Discussion started by: patrick87
4 Replies

8. Shell Programming and Scripting

problem using awk

Hi there every body I'm new to shell scripting and there is a problem facing me,, please look at the following piece of code: awk ' BEGIN{ FS="<assertion id=\1"; RS="<assertion id=\"2"}/<assertion id=\"1/{print FS$2 > "/home/ds2/test/output.txt"} ' filename all I wanna do is to... (6 Replies)
Discussion started by: senior_ahmed
6 Replies

9. Shell Programming and Scripting

Problem with AWK

Hi All, How can i store a value of the unix command executed in AWK with system command. devise=`cut -c1-3 dvgp.txt` I wrote this command in awk as awk'{ code= sprintf("devise=`cut -c1-3 dvgp.txt`"); system(code); }' Is this correct. can you please suggest me how the code can be... (1 Reply)
Discussion started by: krishna_gnv
1 Replies

10. UNIX for Dummies Questions & Answers

AWK Problem

Hi, I posted something here about this yesterday but I can't seem to find it. I needed help writting a script which would append a file with new lines after every so many charachters. Example: (my original flat file) L60 LETTER OF CREDIT 60 DAYS W00 ON RECEIPT WIRE TRANSFER W30 NET... (12 Replies)
Discussion started by: gseyforth
12 Replies
Login or Register to Ask a Question