Delimited File Help


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Delimited File Help
# 1  
Old 03-27-2008
Delimited File Help

Hey guys I am new to unix programming and need some help with a task.

I have a file that is comma delimited with values like this

1,NEW.txt
1,OLD.txt
2,MONKEY.txt
3,FUN.txt
100,MONEY.txt

I have a user enter a value for the type they want (1,2,3,100).

I then want to compare the first column in the file to that entered value and return the second column in that file if it matches.

If 1 is entered I want returned:

NEW.txt
OLD.txt

I cannot figure out how to use awk, cut or sed to do this.

Any help would be greatly appreciated. Thanks in advance folks!
# 2  
Old 03-27-2008
One way of doing it:

script

Code:
#!/bin/bash
filename="$1"
echo "Enter value "
read value

awk -F, -v var="$value"  '{if (var == $1 ) print $2}'  "$filename"

It should be run as :

Code:
./script your_file

# 3  
Old 03-28-2008
Rubin... I am getting an error on the code given. I hardcoded some test data and tried to run.

Code:
awk -F, -v var="1"  '{if (var == $1 ) print $2}'  GO_FILE_LIST.dat   

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

# 4  
Old 03-28-2008
Works here. Do you have a really old version of awk? The script itself is so trivial as to hardly contain any syntax at all -- does your awk understand -F and -v? If not, do you have access to nawk, or mawk, or gawk, ... or (gasp) Perl? (Hint: a2p)
# 5  
Old 03-28-2008
Thats a very good question, I have no idea what version of awk I have...

I have access to nawk but not the other two. And I do have access to Perl but know nothing about it.


This ended up working for me... Can you see any issues with this?

Code:
$VAR_NAM=$1
$FILE_LIST=$2
$TEMP_FILE=$3

awk -F, '$1=='"$VAR_NAM"' {print $2}'  $FILE_LIST > $TEMP_FILE

Thanks for the help!

Update...
Using nawk the previous code worked fine with the IF statements thanks for the help folks!
# 6  
Old 03-28-2008
Strictly speaking, you should put double quotes around the file names too. And obviously, when assigning to a variable, you don't put a dollar sign in front of the variable name. Other than that, schoolbook example -- good work.

Would still be interesting to learn if switching from awk to nawk would solve the problem you were having with the syntax error.
# 7  
Old 03-28-2008
Yes switching to nawk solved the problem...

Here is the test code used...

Code:
AML_SER=$1
FILE_LIST=$2
TEMP_FILE=$3

nawk -F, -v var="$AML_SER"  '{if (var == $1 ) print $2}' "$FILE_LIST" > "$TEMP_FILE"

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Replace a column in tab delimited file with column in other tab delimited file,based on match

Hello Everyone.. I want to replace the retail col from FileI with cstp1 col from FileP if the strpno matches in both files FileP.txt ... (2 Replies)
Discussion started by: YogeshG
2 Replies

2. Shell Programming and Scripting

Help/Advise please for converting space delimited string variable to comma delimited with quote

Hi, I am wanting to create a script that will construct a SQL statement based on a a space delimited string that it read from a config file. Example of the SQL will be For example, it will read a string like "AAA BBB CCC" and assign to a variable named IN_STRING. I then concatenate... (2 Replies)
Discussion started by: newbie_01
2 Replies

3. UNIX for Dummies Questions & Answers

Need to convert a pipe delimited text file to tab delimited

Hi, I have a rquirement in unix as below . I have a text file with me seperated by | symbol and i need to generate a excel file through unix commands/script so that each value will go to each column. ex: Input Text file: 1|A|apple 2|B|bottle excel file to be generated as output as... (9 Replies)
Discussion started by: raja kakitapall
9 Replies

4. Shell Programming and Scripting

How to make tab delimited file to space delimited?

Hi How to make tab delimited file to space delimited? in put file: ABC kgy jkh ghj ash kjl o/p file: ABC kgy jkh ghj ash kjl Use code tags, thanks. (1 Reply)
Discussion started by: jagdishrout
1 Replies

5. Shell Programming and Scripting

awk read one delimited file, search another delimited file

Hello folks, I have another doozy. I have two files. The first file has four fields in it. These four fields map to different locations in my second file. What I want to do is read the master file (file 2 - 23 fields) and compare each line against each record in file 1. If I get a match in all four... (4 Replies)
Discussion started by: dagamier
4 Replies

6. Shell Programming and Scripting

Help with converting Pipe delimited file to Tab Delimited

I have a file which was pipe delimited, I need to make it tab delimited. I tried with sed but no use cat file | sed 's/|//t/g' The above command substituted "/t" not tab in the place of pipe. Sample file: abc|123|2012-01-30|2012-04-28|xyz have to convert to: abc 123... (6 Replies)
Discussion started by: karumudi7
6 Replies

7. Shell Programming and Scripting

How to convert a space delimited file into a pipe delimited file using shellscript?

Hi All, I have space delimited file similar to the one as shown below.. I need to convert it as a pipe delimited, the values inside the pipe delimited file should be as highlighted... AA ATIU2345098809 009697 005374 BB ATIU2345097809 005445 006518 CC ATIU9685098809 003215 003571 DD... (7 Replies)
Discussion started by: nithins007
7 Replies

8. Shell Programming and Scripting

convert a pipe delimited file to a':" delimited file

i have a file whose data is like this:: osr_pe_assign|-120|wg000d@att.com|4| osr_evt|-21|wg000d@att.com|4| pe_avail|-21|wg000d@att.com|4| osr_svt|-11|wg000d@att.com|4| pe_mop|-13|wg000d@att.com|4| instar_ready|-35|wg000d@att.com|4| nsdnet_ready|-90|wg000d@att.com|4|... (6 Replies)
Discussion started by: priyanka3006
6 Replies

9. UNIX for Dummies Questions & Answers

Converting Space delimited file to Tab delimited file

Hi all, I have a file with single white space delimited values, I want to convert them to a tab delimited file. I tried sed, tr ... but nothing is working. Thanks, Rajeevan D (16 Replies)
Discussion started by: jeevs81
16 Replies

10. Shell Programming and Scripting

Converting Tab delimited file to Comma delimited file in Unix

Hi, Can anyone let me know on how to convert a Tab delimited file to Comma delimited file in Unix Thanks!! (22 Replies)
Discussion started by: charan81
22 Replies
Login or Register to Ask a Question