Bash replace everything between two character


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash replace everything between two character
# 1  
Old 06-13-2013
Bash replace everything between two character

hi,
bash is confusing me. it looks so nice when the script is completed, but the way is sometimes very hard...

i want to replace everything between 'P/' and the next '\' with a static string. my regex can occur multiple times in the text.

i think i'm close to it....

new='zzzzz'
example1='P/a1\abc0123\A/BC' -->> 'P/zzzzz\abc0123\A/BC'
example2='A\P/abcABC012\abc012' -->> 'A\P/zzzzz\abc012'
example3='AB\P/aA12\a01ABC\P/01abc\ABC' -->> 'AB\P/zzzzz\a01ABC\P/zzzzz\ABC'

echo ${example1//P\/*\\/$new}

It would be very nice if someone could help me.
Thanks in advance.
# 2  
Old 06-13-2013
That does look very very close.

Code:
$ echo "${example1//P\/*\\/P/asdf\\}"

P/asdf\A/BC

$

# 3  
Old 06-13-2013
This is not what the OP wants, as the \abc0123 string is missing. Unfortunately, I can't right now find a pattern equivalent to the [^\]* regex.
# 4  
Old 06-13-2013
If your sure there is a match this will work (might have to check something matches first:

Code:
echo ${example1%P/*}P/${new}\\${example1#*P/*\\}

# 5  
Old 06-14-2013
Perl is better for non-greedy match
Code:
$ echo $example1 | perl -nle '$test=$_;$test=~s/P\/.+?\\/zzzz/g;print $test;'
zzzzabc0123\A/BC
$ echo $example3 | perl -nle '$test=$_;$test=~s/P\/.+?\\/zzzz/g;print $test;'
AB\zzzza01ABC\zzzzABC


Last edited by rajamadhavan; 06-14-2013 at 03:57 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Escape bash-special character in a bash string

Hi, I am new in bash scripting. In my work, I provide support to several users and when I connect to their computers I use the same admin and password, so I am trying to create a script that will only ask me for the IP address and then connect to the computer without having me to type the user... (5 Replies)
Discussion started by: arcoa05
5 Replies

2. UNIX for Advanced & Expert Users

Replace certain character at specific place with related character

hello i have file with 100k records and each one has certain value that starts at 28th column and certain value that starts at 88th column e.g. 1st file <25>1234567 ..... <88> 8573785485 i have aditional file with values which are related to value that starts at 88th column of the... (1 Reply)
Discussion started by: dell1520
1 Replies

3. Shell Programming and Scripting

Find character and Replace character for given position

Hi, i want find the character '-' in a file from position 284-298, if it occurs i need to replace it with 'O ' for the position in the file. How to do that using SED command. thanks in advance, Sara (9 Replies)
Discussion started by: Sara183
9 Replies

4. Shell Programming and Scripting

Bash script to replace a character with another

Hi. I'm a complete noob when it comes to scripting. I have approximately 2000 files scattered throughout different locations that I need to rename. The current files have a character, "." , that needs to be replaced with an underscore. I have no clue which route to go about correcting this.... (4 Replies)
Discussion started by: Nvizn
4 Replies

5. UNIX for Dummies Questions & Answers

Reading character by character - BASH

Hello every one and thanks in advance for the time you will take to think about my problem. I would like to know if it's possible (in BASH) to read a text file character after character. Exactly this is what I would like to do : Txt file : ATGCAGTTCATTGCCAAA...... (~2.5 millions... (3 Replies)
Discussion started by: sluvah
3 Replies

6. Shell Programming and Scripting

Replace multiple occurances of same character with a single character.

Hi all, Greetings, I have the following scenario, The contents of main file are like : Unix|||||forum|||||||||||||||is||||||the||best so||||||be|||||on||||||||||||||||||||||||||||||||||||||||||||it And i need the output in the following form: Unix=forum=is=the=best so=be=on=it ... (3 Replies)
Discussion started by: dipanchandra
3 Replies

7. Shell Programming and Scripting

In Sed how can I replace starting from the 7th character to the 15th character.

Hi All, Was wondering how I can do the following.... I have a String as follows "ACCTRL000005022RRWDKKEEDKDD...." This string can be in a file called tail.out or in a Variable called $VAR2 Now I have another variable called $VAR1="000004785" (9 bytes long), I need the content of... (5 Replies)
Discussion started by: mohullah
5 Replies

8. Shell Programming and Scripting

replace a character with another character

hi i have a string var=abc.ghi.jkl.mno.pqr now i need to replace .(dot) with _(underscore) the result should be like "arresult=abc_def_ghi_jkl_mno_pqr" Please help (8 Replies)
Discussion started by: satish@123
8 Replies

9. Shell Programming and Scripting

read in a file character by character - replace any unknown ASCII characters with spa

Can someone help me to write a script / command to read in a file, character by character, replace any unknown ASCII characters with space. then write out the file to a new filename/ Thanks! (1 Reply)
Discussion started by: raghav525
1 Replies

10. UNIX for Dummies Questions & Answers

replace character with tr

Hi, i would like substitute the words containing the character "-" by any other. i've already tried the tr command: tr '\-' 'X', for example. But, this command doesn't work. It gave this: Original text: -i abcd-fe Result text: Xi abcdXfe Result desired: -i abcdXfe Thanks! ;) (3 Replies)
Discussion started by: tmxps
3 Replies
Login or Register to Ask a Question