How to call a string by string from a file to use in for loop?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to call a string by string from a file to use in for loop?
# 1  
Old 09-21-2017
How to call a string by string from a file to use in for loop?

Hi,

I have a below sql query.
Code:
select * from table where name in ('${name});

I have a requirement to automate this as here i need to pass the string value name from txt file.
The text file contains the differnet special characters and i have some 200 names in the text file as follows.

Code:
3" - 11" DCBA-1234
5"-8" ABC MNOP-3765
8"-16" LMNOP ABCD-0302
ABC XYZ JKLM-1212
XYZ-1673

And my below code is not fetching the complete string value, How to achieve this?
Code:
for name in `cat file.txt`
do
select * from table where name in ('${name});
done

Any insights would be more helpful!!
Thanks in advance!!


Moderator's Comments:
Mod Comment Some more code tags for the example rows...

Last edited by zaxxon; 09-21-2017 at 09:02 AM..
# 2  
Old 09-21-2017
Your shell will not be able to do a SQL SELECT. So you want either just echo/print it out or you will have to put your SQL-client here like sqlplus for example with oracle etc.
Also the single quote seems to be very lonely, means it is not closed by a second single quite.

You can try this:
Code:
$ while read LINE; do echo "select * from table where name in ('$LINE');"; done < infile
select * from table where name in ('3" - 11" DCBA-1234');
select * from table where name in ('5"-8" ABC MNOP-3765');
select * from table where name in ('8"-16" LMNOP ABCD-0302');
select * from table where name in ('ABC XYZ JKLM-1212');
select * from table where name in ('XYZ-1673');

It might be more efficient to add the other strings with a separating comma into the same statement so you fire only one statement instead of 200.

Last edited by zaxxon; 09-21-2017 at 09:16 AM..
# 3  
Old 09-21-2017
Thanks for the reply !

I am using Netezza and i have just given an example with a single query and i have given all the connection strings to access and once the first query returns the results then a set of queries needs to execute..so i have to put this in loop.
# 4  
Old 09-21-2017
Else you could do something like this:
Code:
awk -v q=\' '
{
     s ? s=s ORS q $0 q : s=q $0 q
}
END{
     printf("select * from table where name in (%s);\n", s)
}
' ORS=, infile

Output:
Code:
select * from table where name in ('3" - 11" DCBA-1234','5"-8" ABC MNOP-3765','8"-16" LMNOP ABCD-0302','ABC XYZ JKLM-1212','XYZ-1673');

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace string of a file with a string of another file for matches using grep,sed,awk

I have a file comp.pkglist which mention package version and release . In 'version change' and 'release change' line there are two versions 'old' and 'new' Version Change: --> Release Change: --> cat comp.pkglist Package list: nss-util-devel-3.28.4-1.el6_9.x86_64 Version Change: 3.28.4 -->... (1 Reply)
Discussion started by: Paras Pandey
1 Replies

2. Shell Programming and Scripting

Use while loop to read file and use ${file} for both filename input into awk and as string to print

I have files named with different prefixes. From each I want to extract the first line containing a specific string, and then print that line along with the prefix. I've tried to do this with a while loop, but instead of printing the prefix I print the first line of the file twice. Files:... (3 Replies)
Discussion started by: pathunkathunk
3 Replies

3. UNIX for Beginners Questions & Answers

Search a string and display its location on the entire string and make a text file

I want to search a small string in a large string and find the locations of the string. For this I used grep "string" -ob <file name where the large string is stored>. Now this gives me the locations of that string. Now how do I store these locations in a text file. Please use CODE tags as... (7 Replies)
Discussion started by: ANKIT ROY
7 Replies

4. Shell Programming and Scripting

Search a string in a text file and add another string at the end of line

Dear All I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB... (5 Replies)
Discussion started by: suryanarayana
5 Replies

5. Shell Programming and Scripting

Search a string in a text file and add another string at the particular position of a line

I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB and add/replace... (1 Reply)
Discussion started by: suryanarayana
1 Replies

6. Shell Programming and Scripting

Recursive search for string in file with Loop condition

Hi, Need some help... I want to execute sequence commands, like below test1.sh test2.sh ...etc test1.sh file will generate log file, we need to search for 'complete' string on test1.sh file, once that condition success and then it should go to test2.sh file, each .sh scripts will take... (5 Replies)
Discussion started by: rkrish123
5 Replies

7. Shell Programming and Scripting

grep exact string from files and write to filename when string present in file

I am attempting to grep an exact string from a series of files within a directory and append that output to the filename when it is present in the file. I've been after this all day with no luck. Thanks for your help in advance :wall:. (4 Replies)
Discussion started by: JC_1
4 Replies

8. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

9. Shell Programming and Scripting

replace (sed?) a single line/string in file with multiple lines (string) from another file??

Can someone tell me how I can do this? e.g: Say file1.txt contains: today is monday the 22 of NOVEMBER 2010 and file2.txt contains: the 11th month of How do i replace the word NOVEMBER with (5 Replies)
Discussion started by: tuathan
5 Replies

10. Shell Programming and Scripting

search string in a file and retrieve 10 lines including string line

Hi Guys, I am trying to write a perl script to search a string "Name" in the file "FILE" and also want to create a new file and push the searched string Name line along with 10 lines following the same. can anyone of you please let me know how to go about it ? (8 Replies)
Discussion started by: sukrish
8 Replies
Login or Register to Ask a Question