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
# 1  
Old 05-02-2008
Parse value from multiple row to create the path

Hi all,

Hope all the expert can help me in this situation.

Let say I have one file with multiple record like below:

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

[10002]
NAME=FRAGMENT
LANGUAGE=1
DIALECT=0
GENDER=NONE
FILE=TEST2
DIRECTORY=
END

[10003]
NAME=FRAGMENT
LANGUAGE=1
DIALECT=0
GENDER=NONE
FILE=TEST3
DIRECTORY=
END

For each record, I need to generate the path for DIRECTORY where,

- D:/DETAILS/ is fixed
- 1 is taken from LANGUAGE=1
- 0 is taken from DIALECT=0
- test1 is taken from FILE=TEST1
- test1 must be SMALL LETTER

Since in the file there are huge amount of records,so I think may be can use script to generate the path for each record. But getting stuck for the script now. Please advise.

Thank you so much.

Best Regards,
Shirley
# 2  
Old 05-02-2008
Show what script have you prepared so far.
# 3  
Old 05-02-2008
Try:
Code:
awk ' /DIRECTORY/ {print $1"=D:/DETAILS/"a["LANGUAGE"]"/"a["DIALECT"]"/"tolower(a["FILE"]);next}a[$1]=$2{}1' FS='=' sourceFile

# 4  
Old 05-02-2008
Error while execute the command

Hi Klashxx,

I get the below error when execute the command:

awk: syntax error near line 1
awk: bailing out near line 1

Try to solved it many times already but still getting the same error. Please advise.

Thank you.

Best Regards,
Shirley
# 5  
Old 05-02-2008
Solaris box??
# 6  
Old 05-02-2008
Question

Quote:
Originally Posted by Klashxx
Try:
Code:
awk ' /DIRECTORY/ {print $1"=D:/DETAILS/"a["LANGUAGE"]"/"a["DIALECT"]"/"tolower(a["FILE"]);next}a[$1]=$2{}1' FS='=' sourceFile

Great code.Can you please say what this part of the code is doing?
a[$1]=$2{}1

With Regards
Dileep Pattayath
# 7  
Old 05-02-2008
Quote:
Originally Posted by shirleyeow
Hi Klashxx,

I get the below error when execute the command:

awk: syntax error near line 1
awk: bailing out near line 1

Try to solved it many times already but still getting the same error. Please advise.

Thank you.

Best Regards,
Shirley
Try out this !

nawk -F"=" '/DIRECTORY/ {print $1"=D:/DETAILS/"a["LANGUAGE"]"/"a["DIALECT"]"/"tolower(a["FILE"]);next}a[$1]=$2{}1' file.txt
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