sed - Removing all characters from token to end of line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed - Removing all characters from token to end of line
# 1  
Old 03-28-2013
sed - Removing all characters from token to end of line

Hello.
The token is any printable characters between 2 " .
The token is unknown, but we know that it is between 2 "
Tok 1 : "1234x567"
Tok 2 : "A3b6+None"
Tok 3 : "A3b6!1234=@"

The ligne is :
Line 1 :
Code:
"9876xABCDE"Do you have any code fragments or data samples in your post

Line 2 :
Code:
"nboobd"    Use descriptive thread titles when posting

But it is possible that there is a whitespace at the beginning of the ligne
Line 3 :
Code:
        "NFHNEJSniuo112"       See new thread posting rules at the top

Each line is in a file.
And I would like the command like : sed parameter file1 > file2


Code:
sed  's/[ |]"[.*]".*/[.*]/g'  file1 > file2

should give
Code:
"NFHNEJSniuo112"

in file2
with parameter something like :
Code:
's/[ |]"[.*]".*/[.*]/g

with file1 containing something like :
Code:
"NFHNEJSniuo112"

See new thread posting rules at the top

Any help is welcome

Last edited by Scrutinizer; 03-28-2013 at 02:49 PM.. Reason: code tags
# 2  
Old 03-28-2013
Think awk may be more appropriate, you can use its token splitting features to extract exactly what you want. Tell it that " splits columns and the token will always be the second column, i.e. $2.

FS is the special variable for column separator, so I'm just printing quote, token, quote.

Code:
awk -F"\"" '{ print FS $2 FS }' inputfile > outputfile

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 03-28-2013
I agree that awk solution is more readable, but just for the heck of it, here is sed command that should do the trick:
Code:
sed 's/.*\("[^"]*"\).*/\1/'

This User Gave Thanks to mirni For This Post:
# 4  
Old 03-28-2013
Quote:
Originally Posted by Corona688
Think awk may be more appropriate, you can use its token splitting features to extract exactly what you want. Tell it that " splits columns and the token will always be the second column, i.e. $2.

FS is the special variable for column separator, so I'm just printing quote, token, quote.

Code:
awk -F"\"" '{ print FS $2 FS }' inputfile > outputfile

Great

But I Known very few with sed and nothing with awk.

Thank you for helping.

---------- Post updated at 18:42 ---------- Previous update was at 18:40 ----------

Quote:
Originally Posted by mirni
I agree that awk solution is more readable, but just for the heck of it, here is sed command that should do the trick:
Code:
sed 's/.*\("[^"]*"\).*/\1/'

Great

Thank you for helping.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed removing extra character from end

Hi, Searching through forum I found "sed 's/*$//'" can be used to remove trailing whitespaces and tabs from file. The command works fine but I see minor issue as below. Can you please suggest if I am doing something wrong here. $ cat a.txt upg_prod_test upg_prod_new $ cat a.txt |sed... (11 Replies)
Discussion started by: bhupinder08
11 Replies

2. Shell Programming and Scripting

sed - How to insert line before the first blank line following a token

Hello. I have a config file (/etc/my_config_file) which may content : # # port for HTTP (descriptions, SOAP, media transfer) traffic port=8200 # network interfaces to serve, comma delimited network_interface=eth0 # set this to the directory you want scanned. # * if have multiple... (6 Replies)
Discussion started by: jcdole
6 Replies

3. UNIX for Dummies Questions & Answers

How to specify beginning-of-line/end-of-line characters inside a regex range

How can I specify special meaning characters like ^ or $ inside a regex range. e.g Suppose I want to search for a string that either starts with '|' character or begins with start-of-line character. I tried the following but it does not work: sed 's/\(\)/<do something here>/g' file1 ... (3 Replies)
Discussion started by: jawsnnn
3 Replies

4. Shell Programming and Scripting

Cannot execute/finish script because of last line syntax error: unexpected end of file/token `done'

first of all I thought the argument DONE is necessary for all scripts that have or begin with do statements which I have on my script, However, I still don't completely understand why I am receiving an error I tried adding another done argument statement but didn't do any good. I appreciate... (3 Replies)
Discussion started by: wolf@=NK
3 Replies

5. UNIX for Dummies Questions & Answers

Removing characters from end of string

Hello, I have records like below that I want to remove any five characters from the end of the string before the double quotes unless it is only an asterik. 3919,5020 ,04/17/2012,0000000000006601.43,,0000000000000000.00,, 132, 251219,"*" 1668,0125 ... (2 Replies)
Discussion started by: jyoung
2 Replies

6. Shell Programming and Scripting

Removing characters from end of line (length unknown)

Hi I have a file which contains wrong XML, There are some garbage characters at the end of line that I want to get rid of. Example: <request type="product" ><attributes><pair><name>q</name><value><!]></value></pair><pair><name>start</name><value>1</value></pair></attributes></request>�J ... (7 Replies)
Discussion started by: dirtyd0ggy
7 Replies

7. Shell Programming and Scripting

sed removing until end of line

All: Can somebody help me out with a sed command, which removes the the first occurance of ')' until the end of the line If I have the following input ... (5 Replies)
Discussion started by: BeefStu
5 Replies

8. UNIX for Dummies Questions & Answers

Removing end of line using SED

Hello Friends, How can I remove the last two values of this line using sed John Carey:507-699-5368:29 Albert way, Edmonton, AL 25638:9/3/90:45900 The result should look like this: John Carey:507-699-5368:29 Albert way, Edmonton, AL 25638 (3 Replies)
Discussion started by: humkhn
3 Replies

9. Shell Programming and Scripting

Get the 1st 99 characters and add new line feed at the end of the line

I have a file with varying record length in it. I need to reformat this file so that each line will have a length of 100 characters (99 characters + the line feed). AU * A01 EXPENSE 6990370000 CWF SUBC TRAVEL & MISC MY * A02 RESALE 6990788000 Y... (3 Replies)
Discussion started by: udelalv
3 Replies

10. Shell Programming and Scripting

Removing characters from end of $string

I am writing a script to search PCL output and append more PCL data to the end accordingly. I need to remove the last 88 bytes from the string. I have searched for a few hours now and am coming up with nothing. I can't use head or tail because the PCL output is all on one line. awk crashes on... (3 Replies)
Discussion started by: craig2k
3 Replies
Login or Register to Ask a Question