sed discard chars after last _


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed discard chars after last _
# 1  
Old 05-12-2010
sed discard chars after last _

Hi,

I'd get fields like
Code:
 
unix_linux_form_yyyyddmmhhmi.file.txt
shell_programming_and_scripting.txt

so on...

and want them as below
Code:
 
unix_linux_form
shell_programming_and

I could remove everything after a '.' as below
Code:
echo $field | sed 's/\..*//'

but how to remove characters after the last '_' (as no. of _ might vary and also there is no definite pattern).
-dips
# 2  
Old 05-12-2010
try
Code:
echo $var |awk -F_ 'BEGIN{OFS="_"}{$NF=""}1'|sed 's{_${{'

# 3  
Old 05-12-2010
Thanks posix! It works.
But can you please explain the awk command?

-dips
# 4  
Old 05-12-2010
Smilie The bash way:
Code:
echo ${var%_*}

# 5  
Old 05-12-2010
Or with sed:
Code:
sed 's/\(.*\)_.*/\1/' file

# 6  
Old 05-12-2010
You can use:

Code:
cat file1|awk -F_ 'BEGIN{OFS="_"}{$NF=""}1'|sed 's/_$//'


Moderator's Comments:
Mod Comment Please use code tags!

Last edited by Franklin52; 05-12-2010 at 03:44 AM..
# 7  
Old 05-12-2010
Quote:
Originally Posted by RahulJoshi
You can use:

Code:
cat file1|awk -F_ 'BEGIN{OFS="_"}{$NF=""}1'|sed 's/_$//'

Are you going for the Useless Use of Cat Award?
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. UNIX for Dummies Questions & Answers

Grep or sed to search, replace/insert chars!

HI All Im trying to come up with an approach to finding a string, using a portion of that string to insert it on lines starting with the value "GOTO" appending to end of line after removing PT's ( See example below! ) EXAMPLE: 1. I would like to search for the line that starts with "TLAXIS/"... (7 Replies)
Discussion started by: graymj
7 Replies

3. 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

4. Shell Programming and Scripting

AWK/SED: handle max chars in a line

Hi all, I hope you guys can help me. I prefer SED/AWK solutions if possible. For my shame it didn't work for me :o ISSUE: :wall: 1\3 1/$4\@7\ 1234567890123456789\ 1234567890123456789,\ 1234567890123456789\ 123456789012 12345 1234567890123456789\ 1234567890123456789,\ 1234... (5 Replies)
Discussion started by: unknown7
5 Replies

5. Shell Programming and Scripting

Special chars in sed variable

Hi, For years ive been using this script to do mass search & replaces on our websites. Its worked with all sorts of spaces, quotes, html or whatever with a little adjusting here and there. But I just cant get this pattern to work: #!/bin/bash OLDURL="document.write('<script... (2 Replies)
Discussion started by: mutex
2 Replies

6. Shell Programming and Scripting

sed - how to insert chars into a line

Hi I'm new to sed, and need to add characters into a specific location of a file, the fileds are tab seperated. text <tab> <tab> text <tab> text EOL I need to add more characters to the line to look like this: text <tab> <tab> newtext <tab> text <tab> text EOL Any ideas? (2 Replies)
Discussion started by: tangentviper
2 Replies

7. Shell Programming and Scripting

sed to extract first two uppercase chars in targeted lines

Hello, I have a file temp.txt: ------------------------- HELLO WORLD This is a temp file. TENCHARSHEre no beginning UPPERCHARS HI There ------------------------- What is a sed egrep command that will target lines that begin with 3-10 uppercase chars, and output the first 2 chars?... (5 Replies)
Discussion started by: str8danked
5 Replies

8. Shell Programming and Scripting

Replace Junk chars (Sed)

I know this has been asked previously on this forum...But I think I have a different scenario to present. I ahve a file tht looks like this (note:there are control Z and other chars tht are not visible on line with anme bowers) BB7118450 6004718 BIANCALANA =HEI BZ5842819 ... (4 Replies)
Discussion started by: alfredo123
4 Replies

9. 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

10. UNIX for Dummies Questions & Answers

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. (7 Replies)
Discussion started by: 435 Gavea
7 Replies
Login or Register to Ask a Question