Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Need help to use regex to do search and replace. Don't know how to and can't figure out how :( Post 303026963 by newbie_01 on Thursday 6th of December 2018 06:45:50 AM
Old 12-06-2018
Thanks, that works fine on Solaris

--- Post updated 12-06-18 at 06:45 AM ---

Hi Don

I did try on Solaris what you suggested in post #4 and it works as I want it to be.

If you don't mind, got some more question to ask playing around with BRE/regex.

Here's another one that I am wanting to do:

Below is the test file file:

Code:
$: cat file1
/db/abcp/DIR/abcp_data_01.dbf

Now I want to replace abcp to abct and I use the following which works fine like I wanted it to:

Code:
$: sed 's#\(/db/abc\)p\(/DIR/abc\)p\(_.*\.dbf\)#\1t\2t\3#' file > file1
$: cat file1
/db/abct/DIR/abct_data_01.dbf

I also try the following in case I only want to replace only where /db is the beginning of the line:

Code:
$: cat file2
/db/abcp/DIR/abcp_data_01.dbf
   /db/abcp/DIR/abcp_data_02.dbf
$: sed 's#^\(/db/abc\)p\(/DIR/abc\)p\(_.*\.dbf\)#\1t\2t\3#' file2 > file1
$: cat file1
/db/abct/DIR/abct_data_01.dbf
   /db/abcp/DIR/abcp_data_02.dbf

OK, it's all good so far. But I thought the previous two options are too 'complicated' so I then try the one below but it is not giving me the result that I wanted. Can you tell me what's wrong with it?

Code:
$: sed 's#\(/db/abcp/DIR/abcp_\)\(_.*\.dbf\)#\(/db/abct/DIR/abct_\)\1#' file > file1
$: cat file1
/db/abcp/DIR/abcp_data_01.dbf

I am expecting file1 to be having /db/abct/DIR/abct_data_01.dbf as well shouldn't it be Smilie

You may be thinking why don't I just simply do 's#abcp#abct#g' instead of having to do sed 's#\(/db/abc\)p\(/DIR/abc\)p\(_.*\.dbf\)#\1t\2t\3#' file > file1. This is because I may have a line that is /db/abcp/DIR/abcp_abcp_data_01.dbf and that string is supposed to be replaced to /db/abct/DIR/abct_abcp_data_01.dbf. Hence I don't want to do a global replace.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search & Replace regex Perl one liner to AWK one liner

Thanks for giving your time and effort to answer questions and helping newbies like me understand awk. I have a huge file, millions of lines, so perl takes quite a bit of time, I'd like to convert these perl one liners to awk. Basically I'd like all lines with ISA sandwiched between... (9 Replies)
Discussion started by: verge
9 Replies

2. Programming

I don't know how to replace input char with appropriate integer

Hi guys, I asked for help on programming forums and no one didn't helped me so I ask for help here. I am playing with some tasks from my book and I can't figure where did I get wrong. From the first program I get a blank screen, program won't generate 10*10 matrix. And second problem is I... (6 Replies)
Discussion started by: solaris_user
6 Replies

3. Emergency UNIX and Linux Support

search replace regex question

Hi, I need to run a search and replace on a large database, what I need to change is all instances of #### (eg. 1764 or 1964) to (####) (eg. (1764) or (1964)) But there might be other numbers in there such as (1764) and I do not need those changed to ((1764)) How can I... (7 Replies)
Discussion started by: lawstudent
7 Replies

4. Shell Programming and Scripting

Regex:search/replace but not for escaped character

Hi Input: - -- --- ---- aa-bb-cc aa--bb--cc aa---bb---cc aa----bb----cc Output: . - -. -- aa.bb.cc (7 Replies)
Discussion started by: chitech
7 Replies

5. Shell Programming and Scripting

Perl:Regex for Search and Replace that has a flexible match

Hi, I'm trying to match the front and back of a sequence. It works when there is an exact match (obviously), but I need the regex to be more flexible. When we get strings of nucleotides sometimes their prefixes and suffixes aren't exact matches. Sometimes there will be an extra letter and... (2 Replies)
Discussion started by: jdilts
2 Replies

6. Shell Programming and Scripting

Regex - search and replace

I have file which contains data in the following format all in a single line: BDW_PUBLN_ID DECIMAL(18:0) NOT NULL PRIMARY INDEX ARGO_ACCT_DEP_PI ( OFC_ID ,CSHBX_ID ,TRXN_SEQ_NUM ,PROCG_DT ) PARTITION BY RANGE_N(PROCG_DT BETWEEN DATE '2012-03-01' AND DATE '2014-12-31' EACH INTERVAL '1' MONTH );... (4 Replies)
Discussion started by: ysvsr1
4 Replies

7. Shell Programming and Scripting

Help with change significant figure to normal figure command

Hi, Below is my input file: Long list of significant figure 1.757E-4 7.51E-3 5.634E-5 . . . Desired output file: 0.0001757 0.00751 0.00005634 . . . (10 Replies)
Discussion started by: perl_beginner
10 Replies

8. Shell Programming and Scripting

Multi line regex for search and replace

I have text file like below: a.txt Server=abc Run=1 Time=120.123 Tables=10 Sessions=16 Time=380.123 Version=1.1 Jobs=5 Server=abc Run=2 Time=160.123 Tables=15 Sessions=16 Time=400.258 Version=2.0 (1 Reply)
Discussion started by: sol_nov
1 Replies

9. Red Hat

Centos server, had to replace the motherboard now the embedded NICs don't work

Basically what the title says. Had to replace the motherboard on an HP DL380 G6 today, of course now the embedded NICs don't work because the ifcfg-eth files have the MAC addresses for the embedded NICs from the old machine. How can I find the new/correct MAC addresses so I can edit the... (2 Replies)
Discussion started by: xdawg
2 Replies

10. Shell Programming and Scripting

Search Replace Specific Column using RegEx

Have Pipe Delimited File: > BRYAN BAKER|4/4/2015|518 VIRGINIA AVE|TEST > JOE BAXTER|3/30/2015|2233 MockingBird RD|ROW2On 3rd column where the address is located, I want to add a space after every numeric value - basically doing a "s//&\ / ": > BRYAN BAKER|4/4/2015|5 1 8 VIRGINIA AVE|TEST > JOE... (5 Replies)
Discussion started by: svn
5 Replies
DBF_DUMP(1p)						User Contributed Perl Documentation					      DBF_DUMP(1p)

NAME
dbf_dump - Dump the record of the dbf file FORMAT
dbf_dump [options] files where options are --rs output record separator (default newline) --fs output field separator (default colon) --fields comma separated list of fields to print (default all) --undef string to print for NULL values (default empty) --memofile specifies unstandard name of attached memo file --memosep separator for dBase III dbt's (default x1ax1a) --nomemo do not try to read the memo (dbt/fpt) file --info print info about the file and fields with additional --SQL parameter, outputs the SQL create table --version print version of the XBase library --table output in nice table format (only available when Data::ShowTable is installed, overrides rs and fs) SYNOPSIS
dbf_dump -fields id,msg table.dbf dbf_dump -fs=' : ' table dbf_dump --nomemo file.dbf ssh user@host 'cat file.dbf.gz' | gunzip - | dbf_dump - DESCRIPTION
Dbf_dump prints to standard output the content of dbf files listed. By default, it prints all fields, separated by colons, one record on a line. The output record and column separators can be changed by switches on the command line. You can also ask only for some fields to be printed. The content of associated memo files (dbf, fpt) is printed for memo fields, unless you use the "--nomemo" option. You can specify reading the standard input by putting dash (-) instead of file name. AVAILABLE FROM
http://www.adelton.com/perl/DBD-XBase/ AUTHOR
(c) 1998--2011 Jan Pazdziora. SEE ALSO
perl(1); XBase(3pm); index_dump(1p) perl v5.12.4 2011-08-31 DBF_DUMP(1p)
All times are GMT -4. The time now is 03:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy