Replacing columns-separated fields having special characters


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Replacing columns-separated fields having special characters
# 1  
Old 04-13-2020
Replacing columns-separated fields having special characters

Dear colleagues,

**I have tens of files with fields separated by column ':' like below

Code:
CCM_JNI_CLASS_PATH=:${CCB_APP_BIN}/CCBG_epsm_opm_wfl_001.jar:${CCB_APP_BIN}/CCBF_fif-api.jar:${CCB_APP_BIN}/CCB_geronimo-jaxws_2.1_spec-1.0.jar:${CCB_APP_BIN}/CCB_geronimo-ws-metadata_2.0_spec-1.1.2.jar:${CCB_APP_BIN}/CCB_jaxb-api-2.1.jar::${CCB_APP_BIN}/CCB_jaxb-impl-2.1.4.jar:${CCB_APP_BIN}/CCB_jaxb-xjc.jar:${CCB_APP_BIN}/CCB_jms-1.1.jar:${CCB_APP_BIN}/CCB_jsr173-1.0_api.jar:${CCB_APP_BIN}/CCB_jsr250-api-1.0.jar:${CCB_APP_BIN}/CCB_jta.jar:${CCB_APP_BIN}/CCB_log4j-1.2.15.jar:${CCB_APP_BIN}/CCB_ojdbc14-1.4.jar:${CCB_APP_BIN}/CCB_saaj-api-1.3.jar

**each file has one occurrence of the path ${CCB_APP_BIN}/CCB_log4j-1.2.15.jar that needs to be replaced by ${CCB_APP_BIN}/CCB_log4j-1.2-api-2.12.1.jar:${CCB_APP_BIN}/CCB_log4j-api-2.12.1.jar:${CCB_APP_BIN}/CCB_log4j-core-2.12.1.jar

**i had difficulties using sed as i could not prevent the special characters interpretation like '$'

** i am on Centos machine:
Code:
ccb20b@redmoon CreateEnvironment/CONF/CCB_126.01 $ lsb_release -a
LSB Version:	:base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID:	CentOS
Description:	CentOS release 6.10 (Final)
Release:	6.10
Codename:	Final

** Appreciate supporting me for required substitution by any possible way you suggest

Many thanks in advance

BR,
Eman
# 2  
Old 04-14-2020
Forum guidelines are that you must post your own code, error messages, sample input and out to ask for assistance.
# 3  
Old 04-15-2020
You are right - sed only takes RegularExpressions so is not ideal if you want to match plain strings that can contain RE-specific characters.
A better tool for this is awk. Here is a principle solution:
Code:
echo 'bla:fromstring:blabla:fromstring' | awk 'BEGIN { RS=":" } $1==from { $1=to } 1' from='fromstring' to='tostring' | paste -sd ":"
bla:tostring:blabla:tostring

The RS (RecordSeparator) is changed from newline to ":".
Because awk has a problem with the last record when ORS (OutputRecordSeparator) is changed to ":" I pipe the newline-separated output to paste that does the output formatting.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to extract fields from a CSV i.e comma separated where some of the fields having comma as value?

can anyone help me!!!! How to I parse the CSV file file name : abc.csv (csv file) The above file containing data like abv,sfs,,hju,',',jkk wff,fst,,rgr,',',rgr ere,edf,erg,',',rgr,rgr I have a requirement like i have to extract different field and assign them into different... (4 Replies)
Discussion started by: J.Jena
4 Replies

2. UNIX for Beginners Questions & Answers

Any tip to replacing the special characters in a file

Hi, Please find attached a file that has special characters on it. It is a copy and paste from a Micro$oft file. I don't want to use strings as it remove all the 'indentations' / 'formatting' so I am replacing them with space instead. I am using the sed command below sed "s/$(printf... (1 Reply)
Discussion started by: newbie_01
1 Replies

3. Shell Programming and Scripting

How to delimit the fields of a input file which has special characters?

Hi All, I am a newbie to Shell scripting. I have a requirement to Delimit the file fields of a Input file having special characters and spaces with ";". Input File ---------------------------------- Server Port ---------------------------------- Local ... (5 Replies)
Discussion started by: Suganbabu
5 Replies

4. UNIX for Beginners Questions & Answers

Replacing string/special characters using a 'conversion' table

Hi, Does anyone know if there is a script or program available out there that uses a conversion table to replace special characters from a file? I am trying to remove some special characters from a file but there are several unprintable/control characters that some I need to remove but some I... (2 Replies)
Discussion started by: newbie_01
2 Replies

5. Shell Programming and Scripting

Perl split string separated by special character

Hello I have string (string can have more sections) LINE="AA;BB;CC;DD;EE"I would like to assigne each part of string separated by ";" to some new variable. Can someone help? (4 Replies)
Discussion started by: vikus
4 Replies

6. UNIX for Dummies Questions & Answers

Replacing valuses containig space and special characters

**Extremely sorry for the typos in heading Old:CAST ('${DEFAULT_HIGH_DATE}' AS DATE FORMAT 'YYYY-MM-DD') New :CAST(CAST('${G_DEFAULT_HIGH_DATE}' AS DATE FORMAT 'MM-DD-YYYY') as DATE FORMAT 'YYYY-MM-DD') Need to change old format as new format cat file1 CAST ('${DEFAULT_HIGH_DATE}' AS... (1 Reply)
Discussion started by: 100bees
1 Replies

7. Shell Programming and Scripting

Need help in replacing special characters

I am writing a ksh script. I need to replace a set of characters in an xml file. FROM="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÛÚÜÝßàáâãäåçèéêëìíîïðñòóôõö¿¶ø®"; TO="AAAAAAACEEEEIIIIDNOOOOOOUUUUYSaaaaaaceeeeiiiionooooo N R" I have used the code- sed 's/$FROM/$TO/g'<abc.xml But its not working. Can anyone tell me the code to do this? (3 Replies)
Discussion started by: saga20
3 Replies

8. Shell Programming and Scripting

Replacing string with special characters in shell

Hi, I am trying to replace a string in shell but it is not working correctly. @xcom.file@ needs to be replaced with tb137 Plz help.Thx. Please use and tags when posting code, data or logs etc. to preserve formatting and enhance readability, thanks. (4 Replies)
Discussion started by: manish72
4 Replies

9. Shell Programming and Scripting

help on sed replacing special characters

Hello, I have a file with many lines with below format: \abc\\1234 jkl\\567 def\\345 \pqr\\567 \xyz\\234 Here, i need to do 2 things. 1. replace \\ with \ 2. remove starting \ so output to be as below: (11 Replies)
Discussion started by: prvnrk
11 Replies

10. Shell Programming and Scripting

Replacing French special characters

Hi, I have tonnes of .txt files that are written in French. I need to replace the French special characters, however, with English equivalents (e.g. é -> e and ç -> c). I have tried this --- #!/bin/bash # Convert French characters to normal characters # Treat each of the files exec... (4 Replies)
Discussion started by: BlueberryPickle
4 Replies
Login or Register to Ask a Question