Sponsored Content
Full Discussion: Inline edit using sed / awk
Top Forums Shell Programming and Scripting Inline edit using sed / awk Post 302585540 by birei on Wednesday 28th of December 2011 04:28:22 PM
Old 12-28-2011
Hi shuklaa02,

A perl one-line:
Code:
$ cat infile
<namebindings:StringNameSpaceBinding xmi:id="StringNameSpaceBinding"  name="ENV_CONFIG_PATH"  nameInNameSpace="COMP/HOD/MYSTR/BACKOFFICE/ENV_CONFIG_PATH"  stringToBind="test"/>
$ perl -lape '
BEGIN { sub modify { $str = $_[0]; $str =~ tr|/|.|; lc $str } } 
s/(name=")[^"]*("\s+nameInNameSpace=")([^"]*)"/$1 . modify($3) . $2 . $3/ge
' infile
<namebindings:StringNameSpaceBinding xmi:id="StringNameSpaceBinding"  name="comp.hod.mystr.backoffice.env_config_path"  nameInNameSpace="COMP/HOD/MYSTR/BACKOFFICE/ENV_CONFIG_PATH  stringToBind="test"/>

Regards,
Birei

---------- Post updated at 22:28 ---------- Previous update was at 22:10 ----------

@agama:

Quote:
Originally Posted by agama
This will probably do the trick. It will handle a file that has lines with different formats if needed.

Code:
awk '
    /nameInNameSpace/ {
        match( $0, "nameInNameSpace=\"[^\"]*\"" )
        split( substr( $0, RSTART, RLENGTH ), a, "=" );
        gsub( "/", ".", a[2] );
        sub( "name=\"[^\"]*\"", "name=" a[2]  );
    }
    { print; }
' input-file >output-file

I think you forgot to lowercase the string. I modified it to:
Code:
awk '
    /nameInNameSpace/ {
        match( $0, "nameInNameSpace=\"[^\"]*\"" )
        split( substr( $0, RSTART, RLENGTH ), a, "=" );
        gsub( "/", ".", a[2] );
        sub( "name=\"[^\"]*\"", "name=" a[2]  );
        $0 = tolower( $0 );
    }
    { print; }
' input-file >output-file

Regards,
Birei
This User Gave Thanks to birei For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed / awk - inplace or inline edit

I need to remove the '&' from a file. In each line of the file, the fields are separated by ^K. I only want to remove '&' if it exists in field number 9. (example of field 9: abc&xyz) I need to do an in place/in line edit. So far I have accomplished the following: awk -F '^K' '{print... (6 Replies)
Discussion started by: hemangjani
6 Replies

2. Shell Programming and Scripting

edit entire column from a fixed-width file using awk or sed

Col1 Col2 Col3 Col4 12 Completed 08 0830 12 In Progress 09 0829 11 For F U 07 0828 Considering the file above, how could i replace the third column the most efficient way? The actual file size is almost 1G. I am... (10 Replies)
Discussion started by: tamahomekarasu
10 Replies

3. Shell Programming and Scripting

File edit with awk or sed

I have the follwoing file: This looks to be : seperated. For the first field i want only the file name without ".txt" and also i want to remove "+" sign if the second field starts with "+" sign. Input file: Output file: Appreciate your help (9 Replies)
Discussion started by: pinnacle
9 Replies

4. Shell Programming and Scripting

Sed or Awk or both to edit file

What is an efficient way to remove all lines from the input file which contain a file name? inputfile: ======================= # comment # comment # comment 5 8 10 /tmp 5 8 10 /var/run 5 8 10 /etc/vfstab 5 8 9 /var/tmp 5 8 10 /var/adm/messages... (7 Replies)
Discussion started by: Arsenalman
7 Replies

5. UNIX for Advanced & Expert Users

awk - remove block of text, multiple actions for 'if', inline edit

I'm having a couple of issues. I'm trying to edit a nagios config and remove a host definition if a certain "host_name" is found. My thought is I would find host definition block containing the host_name I'm looking for and output the line numbers for the first and last lines. Using set, I will... (9 Replies)
Discussion started by: mglenney
9 Replies

6. Shell Programming and Scripting

Awk or Sed, fubd match in column, then edit column.

FILE A: 9780743551526,(Abridged) 9780743551779,(Unabridged) 9780743582469,(Abridged) 9780743582483,(Unabridged) 9780743563468,(Abridged) 9780743563475,(Unabridged) FILE B: c3saCandyland 9780743518321 "CANDYLAND" "MCBAIN, ED" 2001 c3sbCandyland 9780743518321 ... (7 Replies)
Discussion started by: glev2005
7 Replies

7. Shell Programming and Scripting

edit field using sed or awk

please help me to edit the second field using awk or sed i have input file below aa1001 000001 bb1002 000002 cc1003 000003 so i want the output file like below aa1001 01 bb1002 02 cc1003 03 (38 Replies)
Discussion started by: zulabc
38 Replies

8. Shell Programming and Scripting

SED/AWK to edit/add field values in a record

Hi Experts, I am new to shell scripting. Need some help in doing one task given by the customer. The sample record in a file is as follows: 3538,,,,,,ID,ID1,,,,,,,,,,, It needs to be the following: 3538,,353800,353800,,,ID,ID1,,,,,COLX,,,,,COLY, And i want to modify this record in... (3 Replies)
Discussion started by: sugarcane
3 Replies

9. UNIX for Advanced & Expert Users

Combining awk Inline and File Code

I've ended up with a small collection of libraries I like to use with awk, but this means I can't do awk -f librarycode.awk '{ program code }' filename because awk will assume that anything after -f is a filename, not code. Is there any way I can do both? (6 Replies)
Discussion started by: Corona688
6 Replies

10. Shell Programming and Scripting

Sed, Inline replacement of string with spaces

Hello, Just surfed on the web for probable answers but could not get them working. I wish to replace the string containing spaces by another phrase but below answers did not work. My string is: PAIN & GAIN I wish to convert it to: P&G I just need it working with sed with function -i ... (6 Replies)
Discussion started by: baris35
6 Replies
MB_STRTOLOWER(3)							 1							  MB_STRTOLOWER(3)

mb_strtolower - Make a string lowercase

SYNOPSIS
string mb_strtolower (string $str, [string $encoding = mb_internal_encoding()]) DESCRIPTION
Returns $str with all alphabetic characters converted to lowercase. PARAMETERS
o $str - The string being lowercased. o $encoding -The $encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used. RETURN VALUES
$str with all alphabetic characters converted to lowercase. UNICODE
For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/. By contrast to strtolower(3), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (A). EXAMPLES
Example #1 mb_strtolower(3) example <?php $str = "Mary Had A Little Lamb and She LOVED It So"; $str = mb_strtolower($str); echo $str; // Prints mary had a little lamb and she loved it so ?> Example #2 mb_strtolower(3) example with non-Latin UTF-8 text <?php $str = "Txiotn a nE Baos unuvn yn, dpaokeCei unp vw0po kuvs"; $str = mb_strtolower($str, 'UTF-8'); echo $str; // Prints txiotn a nE Baos unuvn yn, dpaokeCei unp vw0po kuvs ?> SEE ALSO
mb_strtoupper(3), mb_convert_case(3), strtolower(3). PHP Documentation Group MB_STRTOLOWER(3)
All times are GMT -4. The time now is 07:23 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy