Modify capture group


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Modify capture group
# 1  
Old 07-21-2016
Modify capture group

Hi, is it possible to modify captured group in substitution, e.g. to output \1 in 2 columns, first one unchanged and 2nd one change to upper case + replace - with underscore. I only did the first part:

Code:
s/\(a.*\)/\1 \L\1/g

Can i do the replacement in the same command?

Thanks a lot.

Moderator's Comments:
Mod Comment Please use code tags

Last edited by jim mcnamara; 07-21-2016 at 01:27 PM..
# 2  
Old 07-21-2016
The & character references the unchanged text that matches the pattern.

so If I get what you want:
Code:
s/\(a.*\)/\1 \L\1/g -> s/\(a.*\)/\1 \L\1/_&/g

But I'm not clear on what you mean by the second one versus the first one. So the example could be wrong.

Please give an example of sample input and expected output. Thanks.
# 3  
Old 07-21-2016
I'm afraid that can't be done, not even with a second substituition, as the start of the upper case replacement string can't be retrieved reliably and consistently.
# 4  
Old 07-21-2016
That is what I wondered, but I though he wanted the original with a prepended '_'
character.
e.g.:
Code:
a.foo -> A.FOO _a.foo

Since we have no answer we cannot know.
# 5  
Old 07-22-2016
Thanks to all of you. I intend to do something like:

abc-efg -> abc-efg ABC_EFG

Just wonder if this can be done in the same sed script.

Thanks again.



Moderator's Comments:
Mod Comment Please use (i)code tags as required by forum rules!

Last edited by RudiC; 07-22-2016 at 12:35 PM.. Reason: Added icode tags.
# 6  
Old 07-22-2016
This cannot be generalised; it won't handle multiple dashes, it will fail on input with different structure, it's ugly:
Code:
echo abc-efg | sed 's/\([a-z]\+\)\(-*\)\([a-z]\+\)/\1\2\3 \U\1_\3/g'
abc-efg ABC_EFG

# 7  
Old 07-25-2016
There will be multiple dashes at various locations... Seems i've to do one more pipe.

Thanks a lot.
Rgds
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Programming

Sql ORA-00937: not a single-group group function

I'm trying to return only one row with the highest value for PCT_MAX_USED. Any suggestions? When I add this code, I get the ORA-00937 error. trunc(max(decode( kbytes_max, 0, 0, (kbytes_alloc/kbytes_max)*100))) pct_max_used This is the original and returns all rows. select (select... (3 Replies)
Discussion started by: progkcp
3 Replies

2. Shell Programming and Scripting

need a one liner to grep a group info from /etc/group and use that result to search passwd file

/etc/group tiadm::345:mk789,po312,jo343,ju454,ko453,yx879,iy345,hn453 bin::2:root,daemon sys::3:root,bin,adm adm::4:root,daemon uucp::5:root /etc/passwd mk789:x:234:1::/export/home/dummy:/bin/sh po312:x:234:1::/export/home/dummy:/bin/sh ju454:x:234:1::/export/home/dummy:/bin/sh... (6 Replies)
Discussion started by: chidori
6 Replies

3. UNIX for Dummies Questions & Answers

create new group/delete existing group

Hi, please let me know the commands to create new group/delete existing group in unix and assigning users to newly created group. Thank you in advance. (2 Replies)
Discussion started by: kancherla.sree
2 Replies

4. AIX

Adding a Volume Group to an HACMP Resource Group?

Hi, I have a 2 node Cluster. Which is working in active/passive mode (i.e Node#1 is running and when it goes down the Node#2 takes over) Now there's this requirement that we need a mount point say /test that should be available in active node #1 and when node #1 goes down and node#2 takes... (6 Replies)
Discussion started by: aixromeo
6 Replies

5. Shell Programming and Scripting

Sort the file contents in each group....print the group title as well

I've this file and need to sort the data in each group File would look like this ... cat file1.txt Reason : ABC 12345-0023 32123-5400 32442-5333 Reason : DEF 42523-3453 23345-3311 Reason : HIJ 454553-0001 I would like to sort each group on the last 4 fileds and print them... (11 Replies)
Discussion started by: prash184u
11 Replies

6. Shell Programming and Scripting

Merge group numbers and add a column containing group names

Hi All I do have a file like this with 6 columns. Groups of data merge together and the group number is indicated above each group. 1 1 12 26 289 3.2e-027 GCGTATGGCGGC 2 12 26 215 6.7e+006 TTCCACCTTTTG 3 9 26 175 ... (1 Reply)
Discussion started by: Lucky Ali
1 Replies

7. Shell Programming and Scripting

Merge group numbers and add a column containing group names

I have a file in the following format. Groups of data merge together and the group number is indicated above each group. 1 adrf dfgr dfg 2 dfgr dfgr 3 dfef dfr fd 4 fgrt fgr fgg 5 fgrt fgr (3 Replies)
Discussion started by: Lucky Ali
3 Replies

8. UNIX for Advanced & Expert Users

retrieving all group names with a given group number

hi, which Unix/C function can i use to retrieve all group names with a particular group id? The following C code prints out the group id number of a particular group name: ------------------------------------------------------------------------ #include <stdio.h> #include <grp.h> int... (3 Replies)
Discussion started by: Andrewkl
3 Replies

9. Solaris

entry in /etc/group too long - problem using sudo with %group

hi folks, I've been googling for quite some time, but still can't find anything near it...my problem is the following: for useradministration in our company we are using ssh/sudo, now whenever I try to add users (we have quite a number of users) with useradd -G groupname for secondary group I... (4 Replies)
Discussion started by: poli
4 Replies
Login or Register to Ask a Question