Extracting the last 3 chars from a string using sed


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Extracting the last 3 chars from a string using sed
# 1  
Old 11-26-2003
CPU & Memory Extracting the last 3 chars from a string using sed

Hi.

Can I extract the last 3 characters from a given string using sed ?

Why the following doesn't work (it prints the full string) :

echo "abcd" | sed '/\.\.\.$/p' doesn't work ?

output: abcd


Thanks in advance,
435 Gavea.
# 2  
Old 11-26-2003
Your command looks for 3 explicit dots at the end of a line, if they exist, the line is printed. But you did not use -n, so the line gets printed anyway.

You want this:
sed 's/.*\(...\)$/\1/'
# 3  
Old 11-26-2003
Hehe, obviosly \. was intended to be a real dot character...
I was kinda desperate , so I tried this out... Smilie

But, let me see If I got it:

You're substituting any characteres till the last 3 ones - (...) means exactly what ? to look for the pattern till (excluding) the last 3 characters ?

And what means the \1 ?

Why didn't you subtituted this characters with nothing ?

Thanks in advance,
435 Gavea
# 4  
Old 11-26-2003
No, .*...$ matches the entire line, provided that at least 3 characters exist. And the entire line is replaced with \1. \1 is the first saved field. A saved field is stuff between \( and \).
# 5  
Old 11-26-2003
Ok, but isn't any way to return directly the 3 characters ? I mean, you can't select directly these 3 characters using the right pattern ?

Or there isn't other way unless you select the entire line first... ?




435 Gavea.
# 6  
Old 11-27-2003
Um, my method does select the 3 rightmost characters and return them. Smilie

There are other sed solutions, but I think this approach is best if sed must be used.
# 7  
Old 11-27-2003
Try it,

echo abcd | sed -n 's/\(^.[^$]*\)\(.\{3\}$\)/\2/p'
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed - print only the chars that match a given set in a string

For a given string that may contain any ASCII chars, i.e. that matches .*, find and print only the chars that are in a given subset. The string could also have numbers, uppercase, special chars such as ~!@#$%^&*(){}\", whatever a user could type in without going esoteric For simplicity take... (1 Reply)
Discussion started by: naderra
1 Replies

2. Shell Programming and Scripting

Add an string at every x chars

Hi All, I have a file fo around 15k bytes which i need to insert a string " + "at every 250 bytes. I found some ideas here using perl to split into lines and tried to addapt it but the results where not satisfactory for instance i tried to change #!/usr/bin/perl $teststring =... (9 Replies)
Discussion started by: kadu
9 Replies

3. UNIX for Dummies Questions & Answers

How to search for a string with special chars?

Hi guys, I am trying to find the following string in a file, but I always get pattern not found error, not sure what is missing here. Can you help please? I do a less to open the xrates.log and then do a /'="18"' in the file and tried various combinations to search the below string. String... (8 Replies)
Discussion started by: santokal
8 Replies

4. Shell Programming and Scripting

Remove duplicate chars and sort string [SED]

Hi, INPUT: DCBADD OUTPUT: ABCD The SED script should alphabetically sort the chars in the string and remove the duplicate chars. (5 Replies)
Discussion started by: jds93
5 Replies

5. Shell Programming and Scripting

[Solved] print chars of a string

how can i print all the chars of a string one by line? i have thought that use a for cicle and use this command inside: ${VARIABLE:0:last}but how can i make last? because string is random P.S. VARIABLE is the string or can i make a variable for every chars of this string? this was my idea... (10 Replies)
Discussion started by: tafazzi87
10 Replies

6. Shell Programming and Scripting

Repeatable chars in a string

I have a string I keep appending too upto certain amount of chars. Is there some sort of way for me to check the string to see if I hit my limit of repeatable characters? For example, assume I allow for 2 repeatable chars, this will be a valid string Xxh03dhJUX, so I can append the last... (3 Replies)
Discussion started by: BeefStu
3 Replies

7. Shell Programming and Scripting

Matching 2 chars of a string that repeat

Hello Unix gurus, I have a gzipped file where each line contains 2 street addresses in the US. What I want to do is get a count for each state that does not match. What I have so far is: $ gzcat matched_10_09.txt.gz |cut -c 106-107,184-185 | head -5 CTCT CTNY CTCT CTFL CTMA This cuts... (5 Replies)
Discussion started by: sitney
5 Replies

8. UNIX for Dummies Questions & Answers

Using SED to get n chars after given value from file

Hello, my name is Marc, I'm a linux starter :) and I hope you specialists can help me solving this issue. I have a file containing a lot of data. Somewhere in this file, there's a string called "Faultdump", directly followed by 64 chars of HEX data. I need to get the HEX part. I accomplished... (12 Replies)
Discussion started by: Kally
12 Replies

9. Shell Programming and Scripting

Retreive string between two chars

I want to write a shell script in order to retreive some data from a log file that i have written into. The string that i want to get is the number 2849 (that is located between | | ). To explain further, this is the result i get after running "grep LOGIN filename.log" but i need to get the... (25 Replies)
Discussion started by: danland
25 Replies

10. Shell Programming and Scripting

sed, grep, awk, regex -- extracting a matched substring from a file/string

Ok, I'm stumped and can't seem to find relevant info. (I'm not even sure, I might have asked something similar before.): I'm trying to use shell scripting/UNIX commands to extract URLs from a fairly large web page, with a view to ultimately wrapping this in PHP with exec() and including the... (2 Replies)
Discussion started by: ropers
2 Replies
Login or Register to Ask a Question