Parse value from multiple row to create the path


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parse value from multiple row to create the path
# 8  
Old 05-02-2008
Error while execute the command

Hi Klashxx,

Yup, is Solaris box.

Hi DILEEP410,

The command is ok but it didnt return the path that I want, the LANGUAGE, DIALECT and FILE value are missing. Please advise.

RESULT:
[10001]
NAME=FRAGMENT
LANGUAGE=1
DIALECT=0
GENDER=NONE
FILE=TEST1
DIRECTORY=D:/DETAILS///
END


Thank you.

Best Regards,
Shirley
# 9  
Old 05-02-2008
Use :
Code:
/usr/xpg4/bin/awk -F\= ' /DIRECTORY/ {print $1"=D:/DETAILS/"a["LANGUAGE"]"/"a["DIALECT"]"/"tolower(a["FILE"]);next}a[$1]=$2{}1'  sourceFile

# 10  
Old 05-02-2008
Java

Quote:
Originally Posted by shirleyeow
Hi Klashxx,

Yup, is Solaris box.

Hi DILEEP410,

The command is ok but it didnt return the path that I want, the LANGUAGE, DIALECT and FILE value are missing. Please advise.

RESULT:
[10001]
NAME=FRAGMENT
LANGUAGE=1
DIALECT=0
GENDER=NONE
FILE=TEST1
DIRECTORY=D:/DETAILS///
END


Thank you.

Best Regards,
Shirley
I tried it in solaris 5.8 and is working fine as you can see the result below

nawk -F"=" '/DIRECTORY/ {print $1"=D:/DETAILS/"a["LANGUAGE"]"/"a["DIALECT"]"/"tolower(a["FILE"]);next}a[$1]=$2{}1' file.txt
[10001]
NAME=FRAGMENT
LANGUAGE=1
DIALECT=0
GENDER=NONE
FILE=TEST1
DIRECTORY=D:/DETAILS/1/0/test1
END

[10002]
NAME=FRAGMENT
LANGUAGE=1
DIALECT=0
GENDER=NONE
FILE=TEST2
DIRECTORY=D:/DETAILS/1/0/test2
END

[10003]
NAME=FRAGMENT
LANGUAGE=1
DIALECT=0
GENDER=NONE
FILE=TEST3
DIRECTORY=D:/DETAILS/1/0/test3
END
# 11  
Old 05-02-2008
Quote:
Originally Posted by DILEEP410
...what this part of the code is doing?
a[$1]=$2{}1
Just assigns $2 to the associate array a, for latter use in the print statement.
Empty curly brackets {} are used to avoid double printing, and 1 to print all lines except those that match the /DIRECTORY/ pattern.

Regards
# 12  
Old 05-05-2008
Thank you

Hi Klashxx and DILEEP410,

The command is running ok now and I able to get the result that I want.

Thank you so much for your help. Really appreciate it. Smilie

Thank you.

Best Regards,
Shirley
# 13  
Old 05-05-2008
Code:
nawk 'BEGIN{OFS=FS="="}
{
if ($1=="LANGUAGE")
{
	print
	t=sprintf("D:/DETAILS/%s",$2)
}		
else if($1=="DIALECT")
{
	print
	t=sprintf("%s/%s",t,$2)
}	
else if($1=="FILE")
{
	print
	t=sprintf("%s/%s",t,tolower($2))
}	
else if($1=="DIRECTORY")
{
	$2=sprintf("%s.txt",t)
	print
}
else
	print
}' file

# 14  
Old 05-05-2008
Quote:
Originally Posted by summer_cherry
Code:
nawk 'BEGIN{OFS=FS="="}
{
if ($1=="LANGUAGE")
{
	print
	t=sprintf("D:/DETAILS/%s",$2)
}		
else if($1=="DIALECT")
{
	print
	t=sprintf("%s/%s",t,$2)
}	
else if($1=="FILE")
{
	print
	t=sprintf("%s/%s",t,tolower($2))
}	
else if($1=="DIRECTORY")
{
	$2=sprintf("%s.txt",t)
	print
}
else
	print
}' file

Hi, if you want go that way , avoid unnecessary code:
Code:
awk 'BEGIN{OFS=FS="="}
/LANGUAGE/{t=sprintf("%s",$2)}
/DIALECT/ {t=sprintf("%s/%s",t,$2)}
/FILE/ {t=sprintf("%s/%s",t,tolower($2))}
/DIRECTORY/ {$2=sprintf("D:/DETAILS/%s.txt",t)}
1'  file

Regards.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parse Directory path - awk

Hi All, Need some help in parsing a directory listing .. output into 2 files Input file level1,/level2/level3/level4/ora001,10,IBB23 level1,/level2/level3/level4/ora001/blu1,,IBB23 level1,/level2/level3/level4/ora001/clu1,,IBB23 level1,/level2/level3/level4/ora002,,IBB24... (10 Replies)
Discussion started by: greycells
10 Replies

2. Shell Programming and Scripting

Splitting single row into multiple rows based on for every 10 digits of last field of the row

Hi ALL, We have requirement in a file, i have multiple rows. Example below: Input file rows 01,1,102319,0,0,70,26,U,1,331,000000113200000011920000001212 01,1,102319,0,1,80,20,U,1,241,00000059420000006021 I need my output file should be as mentioned below. Last field should split for... (4 Replies)
Discussion started by: kotra
4 Replies

3. UNIX for Beginners Questions & Answers

awk to parse current and next row in tab-delimited file

Hi there, I would like to use awk to reformat a tab-delimited file containing three columns as follows: Data file: sample 1 173 sample 269 530 sample 687 733 sample 1699 1779 Desired output file: sample 174..265, 531..686, 734..1698 I need the value... (5 Replies)
Discussion started by: emiley
5 Replies

4. Shell Programming and Scripting

Create multiple files from single file based on row separator

Hello , Can anyone please help me to solve the below - Input.txt source table abc col1 char col2 number source table bcd col1 date col2 char output should be 2 files based on the row separator "source table" abc.txt col1 char (6 Replies)
Discussion started by: Pratik4891
6 Replies

5. Shell Programming and Scripting

Moving files from parent path to multiple child path using bash in efficient way

Hi All, Can you please provide some pointers to move files from Base path to multiple paths in efficient way.Folder Structure is already created. /Path/AdminUser/User1/1111/Reports/aaa.txt to /Path/User1/1111/Reports/aaa.txt /Path/AdminUser/User1/2222/Reports/bbb.txt to... (6 Replies)
Discussion started by: karthikgv417
6 Replies

6. Shell Programming and Scripting

awk Parse And Create Multiple Files Based on Field Value

Hello: I am working parsing a large input file which will be broken down into multiples based on the second field in the file, in this case: STORE. The idea is to create each file with the corresponding store number, for example: Report_$STORENUM_$DATETIMESTAMP , and obtaining the... (7 Replies)
Discussion started by: ec012
7 Replies

7. Shell Programming and Scripting

Parse output path to set variable

I am looking to parse a text file output and set variables based on what is cropped from the parsing. Below is my script I am looking to add this feature too. All it does is scan a certain area of users directories for anyone using up more than X amount of disk space. It then writes to the... (4 Replies)
Discussion started by: es760
4 Replies

8. Shell Programming and Scripting

Parse tab delimited file, check condition and delete row

I am fairly new to programming and trying to resolve this problem. I have the file like this. CHROM POS REF ALT 10_sample.bam 11_sample.bam 12_sample.bam 13_sample.bam 14_sample.bam 15_sample.bam 16_sample.bam tg93 77 T C T T T T T tg93 79 ... (4 Replies)
Discussion started by: empyrean
4 Replies

9. Shell Programming and Scripting

Parse file name out of UNC path

Hello, I searched the forums and didn't see a situation like this: I cannot figure out how to parse out just the file name from the full path. The path looks like this: \\foo\bar\filename.ext I don't think something like 'cut' will work so I tried to whip up a regex but couldn't get it... (12 Replies)
Discussion started by: bytesnoop
12 Replies
Login or Register to Ask a Question