Insert a user input string after matched string in file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Insert a user input string after matched string in file
# 8  
Old 09-02-2018
Unclear. I don't know what
Quote:
Originally Posted by tomislav91
. . .
I want something case1\nHELEN
. . .
should be.





If I enter 2 for uservar, this is what I get (after having adapted the case ... esac statement):
Code:
this is only a test
so please be patient
<color="red" />Helen

# 9  
Old 09-02-2018
Quote:
Originally Posted by RudiC
Unclear. I don't know what
should be.





If I enter 2 for uservar, this is what I get (after having adapted the case ... esac statement):
Code:
this is only a test
so please be patient
<color="red" />Helen

Idea is that i have multiple cases. Case 2 is case1 + some new string which i added.
Case 3 is case1+case2+some new string

------ Post updated at 05:06 AM ------

So if case one result is
123 text
Case2 will be
123 text new2
Case3 will be
123 text new2 new3
# 10  
Old 09-02-2018
That's NOT suitable for a case statement; use an array and a for loop:
Code:
ARR1=( 0 text1 text2 text3 text4 text5 )
uservar=4
for (( i=1; i<=uservar; i++)); do echo  ${ARR1[i]}; done
text1
text2
text3
text4


Last edited by RudiC; 09-02-2018 at 04:40 PM..
# 11  
Old 09-02-2018
I will try to combine with user input and variable match and text ehich i said earlier

------ Post updated at 08:58 AM ------

i did it like this
Code:
#!/bin/bash
read -p 'Enter number:' new
match='<color="red"  \/>'
text='text='this is only a test
so please be patient
<color="red" />''

text0='<h1> <!-- COmment -->
this is a test
    </h1>'
text1="MARIA"
text2="JACK"
text3="BRAD"
ARR1=( 0 $text0 $text1 $text2 $text3 )
uservar=$new
for (( i=1; i<=uservar; i++)); do echo "$text" | sed "s/$match/&\n ${ARR1[i]}/" ;done

So when execute it prints me only a
Quote:
Enter number:3
this is only a test
so please be patient
<color="red" />
this is only a test
so please be patient
<color="red" />
this is only a test
so please be patient
<color="red" />
It should print me
Quote:
Enter number:3
this is only a test
so please be patient
<color="red" />
MARIA
JACK
BRAD
------ Post updated at 08:58 AM ------

Quote:
Originally Posted by tomislav91
I will try to combine with user input and variable match and text ehich i said earlier

------ Post updated at 08:58 AM ------

i did it like this
Code:
#!/bin/bash
read -p 'Enter number:' new
match='<color="red"  \/>'
text='text='this is only a test
so please be patient
<color="red" />'

text0='<h1> <!-- COmment -->
this is a test
    </h1>'
text1="MARIA"
text2="JACK"
text3="BRAD"
ARR1=( 0 $text0 $text1 $text2 $text3 )
uservar=$new
for (( i=1; i<=uservar; i++)); do echo "$text" | sed "s/$match/&\n ${ARR1[i]}/" ;done

So when execute it prints me only a

It should print me
# 12  
Old 09-02-2018
So - what do you expect? It prints exactly what you told it to print. Did you do a test run with nothing but my proposal, unalterd?

Last edited by RudiC; 09-02-2018 at 04:12 PM..
# 13  
Old 09-02-2018
I dont know why dont print from var $text1, $text2 etc. Why only $text0

------ Post updated at 02:44 PM ------

I use for on my echo with sed..hmmm, i must to use for on array within sed, if I am correct...
# 14  
Old 09-19-2018
anyone?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Insert String every n lines, resetting line counter at desired string

I need to read a text file and insert a string every n lines, but also have the line counter restart when I come across a header string. Line repeating working every 3 lines using code: sed '0~3 s/$/\nINSERT/g' < INPUT/PATH/FILE_NAME.txt > OUTPUT/PATH/FILE_NAME.txt I cannot seem to find... (1 Reply)
Discussion started by: Skonectthedots
1 Replies

2. UNIX for Dummies Questions & Answers

Search String, Out matched text and input text for no match.

I need to search a string for some specific text which is no big deal using grep. My problem is when the search fails to find the text. I need to add text like "na" when my search does not match. I have tried this command but it does not work when I put the command in a loop in a bash script: ... (12 Replies)
Discussion started by: jojojmac5
12 Replies

3. UNIX for Dummies Questions & Answers

Commenting a line matched with a specific string in a file

Hi, I would like to comment a line that matched a string "sreenivas" in a file without opening it. Thanks in advance. Regards, Sreenivas (3 Replies)
Discussion started by: raosr020
3 Replies

4. Shell Programming and Scripting

String generation from user input

Hi I have one thing I need advice on, and I don't know where to start so I have no sample code. I want the user to provide input like: 1-3,6,7,9-11 When the input is like this, I want a string to be generated including all the numbers. In the example above, the string would look like: 1... (13 Replies)
Discussion started by: Tobbev
13 Replies

5. Shell Programming and Scripting

Matching string from input to string of file

Hi, i want to know how to compare string of file with input string im trying following code: file_no=`paste -s -d "||||\n" a.txt | cut -c 1` #it will return collection number from file echo "enter number" read " curr_no" if ; then echo " current number already present" fi ... (4 Replies)
Discussion started by: a_smith
4 Replies

6. Shell Programming and Scripting

Grep a string from input file and delete next three lines including the line contains string in xml

Hi, 1_strings file contains $ cat 1_strings /home/$USER/Src /home/Valid /home/Review$ cat myxml <projected value="some string" path="/home/$USER/Src"> <input 1/> <estimate value/> <somestring/> </projected> <few more lines > <projected value="some string" path="/home/$USER/check">... (4 Replies)
Discussion started by: greet_sed
4 Replies

7. Shell Programming and Scripting

input a string and copy lines from a file with that string on it

i have a file1 with many lines. i have a script that will let me input a string. for example, APPLE. what i need to do is to copy all lines from file1 where i can find APPLE or any string that i specify and paste in on file 2 thanks in advance! (4 Replies)
Discussion started by: engr.jay
4 Replies

8. Shell Programming and Scripting

Extracting particular string in a file and storing matched string in output file

Hi , I have input file and i want to extract below strings <msisdn xmlns="">0492001956</ msisdn> => numaber inside brackets <resCode>3000</resCode> => 3000 needs to be extracted <resMessage>Request time getBalances_PSM.c(37): d out</resMessage></ns2:getBalancesResponse> => the word... (14 Replies)
Discussion started by: sushmab82
14 Replies

9. Shell Programming and Scripting

save every line in log file with matched string

i have been doing this script to match every line in a current log file (access_log) with strings that i list from a path (consist of 100 of user's name ex: meggae ).. and then make a directory of every string from the text file (/path/meggae/) --->if it matched.. then print every line from the... (3 Replies)
Discussion started by: meggae
3 Replies

10. Shell Programming and Scripting

String extraction from user input - sh

Hi, I have a shell script to build components of a product. The follow snippet will explain what I am doing. # !/bin/sh for choice in "$@" ; do case $choice in "o") echo "Calling $choice" ; o ;; "i") echo... (8 Replies)
Discussion started by: vino
8 Replies
Login or Register to Ask a Question