Visit Our UNIX and Linux User Community


sed command to replace a character at last


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed command to replace a character at last
# 1  
Old 06-08-2011
sed command to replace a character at last

Hi All,
I have a file having one line only.
It is like
trapsess:inform|10.232.167.18|1|1|50|25|0|0|0|5|1|1|78|0037|

I want to replace the numbers in last two columns by As.

It should look like
trapsess:inform|10.232.167.18|1|1|50|25|0|0|0|5|1|1|AA|AAAA|

Please, suggest me any shell command for this.

Thanks in Advance.
# 2  
Old 06-08-2011
One way,

Code:
awk -F\| '{$(NF-1)="AAAA";$(NF-2)="AA";print}' OFS=\| file

# 3  
Old 06-08-2011
Code:
 
perl -F"\|" -lane 'BEGIN{$,="|"}$F[-1]=~s/\d/A/g;$F[-2]=~s/\d/A/g;print @F'

# 4  
Old 06-08-2011
awk command is not working, it is printing the my desired output, but not replacing the actual file.
I can redirect the output, but it may be a little more long in terms of line of code.

Thanks all for replying
# 5  
Old 06-08-2011
Okies.. I misread the requirements.
Here is the updated one.
Code:
awk -F\| '{gsub(/[0-9]/,"A",$(NF-1));gsub(/[0-9]/,"A",$(NF-2));print}' OFS=\| file


EDIT: yeah. that wont edit the file.
# 6  
Old 06-08-2011


Quote:
Originally Posted by mukeshbaranwal
awk command is not working, it is printing the my desired output, but not replacing the actual file.
I can redirect the output, but it may be a little more long in terms of line of code.

Thanks all for replying
If you want to edit the original file, use the below command

Code:
perl -i.bak -F"\|" -lane 'BEGIN{$,="|"}$F[-1]=~s/\d/A/g;$F[-2]=~s/\d/A/g;print @F'

input

Last edited by getmmg; 06-08-2011 at 11:47 AM.. Reason: Got printed twice. Removed one.
# 7  
Old 06-08-2011
Hi Anchal, I am still in same place. It is not replacing, just printing my desired requirement.
Thanks

Previous Thread | Next Thread
Test Your Knowledge in Computers #891
Difficulty: Easy
In Unix, sed is often used as a filter in a pipeline.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed command to replace two character pattern with another pattern

Not able to paste my content. Please see the attachment :-( (2 Replies)
Discussion started by: vivek d r
2 Replies

2. Shell Programming and Scripting

[Solved] sed : last character replace

Hi all , I have to write a shell script that takes a number as input , like 123 and the output will be 6 ,i.e the output will be the sum of digits of the input. I have an idea as follows, echo "123"|fold -1|tr '\n' '+'|bc But the problem is after " echo "123"|fold -1|tr '\n' '+' "... (5 Replies)
Discussion started by: M.Choudhury
5 Replies

3. Shell Programming and Scripting

How do I replace a unicode character using sed

I have a unicode character {Unicode: 0x1C} in my file and I need to replace it with a blank. How would a sed command look like? cat file1 | sed "s/(//g;" > file2 Is X28 the right value for this Unicode character?? (4 Replies)
Discussion started by: Hangman2
4 Replies

4. Shell Programming and Scripting

how to replace the special character with another using SED

I have the replace the pattern in the file , ); to ); Could someone please help me to get this command. (2 Replies)
Discussion started by: mohan.bit
2 Replies

5. Shell Programming and Scripting

sed special character replace

I need to do the following: text in the format of: ADDRESS=abcd123:1111 - abcd123:1111 is different on every system. replace with: ADDRESS=localhost:2222 sed 's/ADDRESS=<What do I use here?>/ADDRESS=localhost:2222/g' Everything I've tried ends up with: ... (3 Replies)
Discussion started by: toor13
3 Replies

6. Shell Programming and Scripting

how to replace specific character , if possible using sed

My script is extracting data from SQl session, however sometimes the result contains one or multiple space after/before any numerical value. e,g . "123","1 34","1 3 45", "43 5" How to remove these unwanted spaces..so that I can get the following result : "123","134",1345","435" (1 Reply)
Discussion started by: mady135
1 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

sed help,to replace the last character

cat input.txt agsbdafgd ertebrtreter ahrbrwerg The last character of a line that does not start with a would be changed to Z. Final output: agsbdafgd ertebrtreteZ ahrbrwerg Can anyone post the sed command to do that? (2 Replies)
Discussion started by: cola
2 Replies

9. Shell Programming and Scripting

replace two character strings by two variables with sed command

Hello, I want to writte a script that replace two character strings by two variables with the command sed butmy solution doesn't work. I'm written this: sed "s/TTFactivevent/$TTFav/g && s/switchSLL/$SLL/g" templatefile. I want to replace TTFactivevent by the variable $TTFav, that is a... (4 Replies)
Discussion started by: POPO10
4 Replies

10. Shell Programming and Scripting

replace first character of string sed

I want to change the first/or any character of a string to upper-case: String: test Desired results: Test or tEst or teSt or tesT thanks (6 Replies)
Discussion started by: prkfriryce
6 Replies

Featured Tech Videos