Visit Our UNIX and Linux User Community


help for search string by line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting help for search string by line
# 1  
Old 10-17-2009
help for search string by line

Hi there,
I'm having some problem here with searching line. Lets say I got 1 text file which output will be:
A: Hi
B: Bye
C: GG
D: LOL

A: second
B: zzz
C: here
D: help

I will prompt user to input string that want to find and only can match with 1st line. So if user input "Hi", then, then it will display 2nd and 3rd line.

I can grep for the 1st line but I don't know how to make it if 1st line string match, then display 2nd and 3rd line. Hope all can understand what I mean Smilie

Sorry, what I mean was I want to match the A: field only. like if I input "here" to search for string, it will not work. But if I input "Hi" or "second", it will work because is same line with A:

Last edited by hihihehe; 10-17-2009 at 04:33 PM..
# 2  
Old 10-17-2009
A bit straitforward, but still:
Code:
#!/bin/sh

read input

while read line; do
    if [ "A: "${input} = "${line}" ]; then 
        read line; echo "${line}"
        read line; echo "${line}"
    fi
done < 'file'

exit 0

'file' will be your data file.
Hope it helps a bit Smilie
# 3  
Old 10-18-2009
thanks a lot Smilie

but i don't understand how it read the line like 2nd and 3rd line if the string is matched.
and what actually done < 'file" means?

and 1 more. how to put else inside if statement? when i tried to put else, it will print so many lines.

Last edited by hihihehe; 10-18-2009 at 12:19 AM..
# 4  
Old 10-18-2009
I'm not sure if this will help, but if you can already grep the A line and only need it to also print out line B and C with the A line, you can add the -A option to grep. -A will print out however many lines you want below the string you grep. Here you would want to try "grep -A 2 Hi"

That will grep the "Hi" line and also print out the two lines below it.

Code:
 #!/bin/sh
 echo "Type search string:"
 read input
grep -A 2 $input test.txt

Test runs:

# ./test.sh
Type search string:
Hi
A: Hi
B: Bye
C: GG
# ./test.sh
Type search string:
Bye
B: Bye
C: GG
D: LOL
# ./test.sh
Type search string:
second
A: second
B: zzz
C: here
# ./test.sh
Type search string:
zzz
B: zzz
C: here
D: help
#
# 5  
Old 10-18-2009
i got tried your method before and found out is not what I want because I only want to find string inside the A: line only...and tukuyomi's code is work for me.

btw, based on the output of the file at 1st post, if I want to modify the third field only, can I use grep/awk/sed? lets say it will match the third field which is C: with the string I input. If match, then it can let me modify the GG or here to something else in C: field and save it.
# 6  
Old 10-18-2009
with awk...

Code:
awk '/Hi/{print $0; getline;print $0;getline;if($1="C:")$2="zzz";print $0}'
 file

# 7  
Old 10-18-2009
I tried that before too but it doesn't get what I want.

Like this, I will prompt user to input the string inside the A: field.
if the string match with A: field then will prompt user to enter new string that need to replace for C: field.
I even tried sed but still won't work Smilie

Previous Thread | Next Thread
Test Your Knowledge in Computers #391
Difficulty: Medium
Darwin, the open source subset of macOS, has behavior that can be set to comply with UNIX 03.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Search for a string,delete the line and replace with new string in a file

Hi Everyone, I have a requirement in ksh where i have a set of files in a directory. I need to search each and every file if a particular string is present in the file, delete that line and replace that line with another string expression in the same file. I am very new to unix. Kindly help... (10 Replies)
Discussion started by: Pradhikshan
10 Replies

2. Shell Programming and Scripting

Search string within a file and list common words from the line having the search string

Hi, Need your help for this scripting issue I have. I am not really good at this, so seeking your help. I have a file looking similar to this: Hello, i am human and name=ABCD. How are you? Hello, i am human and name=PQRS. I am good. Hello, i am human and name=ABCD. Good bye. Hello, i... (12 Replies)
Discussion started by: royzlife
12 Replies

3. Shell Programming and Scripting

String search and print next all lines in one line until blank line

Dear all I want to search special string in file and then print next all line in one line until blank lines come. Help me plz for same. My input file and desire op file is as under. i/p file: A1/EXT "BSCABD1_21233G1" 757 130823 1157 RADIO X-CEIVER ADMINISTRATION BTS EXTERNAL FAULT ... (7 Replies)
Discussion started by: jaydeep_sadaria
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

Search several string and convert into a single line for each search string using awk command AIX?.

I need to search the file using strings "Request Type" , " Request Method" , "Response Type" and by using result set find the xml tags and convert into a single line?. below are the scenarios. Cat test Nov 10, 2012 5:17:53 AM INFO: Request Type Line 1.... (5 Replies)
Discussion started by: laknar
5 Replies

7. Shell Programming and Scripting

Search a string and to add another string after that in new line

Hi Guys I am facing a problem:wall: In searching a string in a file and to add another string(ie. passed through command line argument) just after this(searched) string in new line. Thanks (2 Replies)
Discussion started by: kushwaha
2 Replies

8. Shell Programming and Scripting

search a string in a particular column of file and return the line number of the line

Hi All, Can you please guide me to search a string in a particular column of file and return the line number of the line where it was found using awk. As an example : abc.txt 7000,john,2,1,0,1,6 7001,elen,2,2,0,1,7 7002,sami,2,3,0,1,6 7003,mike,1,4,0,2,1 8001,nike,1,5,0,1,8... (3 Replies)
Discussion started by: arunshankar.c
3 Replies

9. 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

10. Shell Programming and Scripting

Perl: Search for string on line then search and replace text

Hi All, I have a file that I need to be able to find a pattern match on a line, search that line for a text pattern, and replace that text. An example of 4 lines in my file is: 1. MatchText_randomNumberOfText moreData ReplaceMe moreData 2. MatchText_randomNumberOfText moreData moreData... (4 Replies)
Discussion started by: Crypto
4 Replies

Featured Tech Videos