LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 11-30-2009, 07:43 AM   #1
Kilam orez
Member
 
Registered: Aug 2009
Location: India
Distribution: open suse, fedora
Posts: 33

Rep: Reputation: 15
Lightbulb how to remove words in a file using sed or any other command


hi dear all,

i want to remove words "Max" and "constrained" in a file given below:

Max 0.003745 constrained
Max 0.004549 constrained
Max 0.001689 constrained
Max 0.001673 constrained
Max 0.001475 constrained
Max 0.001931 constrained
Max 0.002565 constrained
Max 0.001327 constrained

and further want to replace "Max" by line number so that i can plot the resulting file.

i searched in forum, but couldn't do what i wanted to do.

e.g. i used

1)grep command

grep -v "Max" inputfile >outputfile

deletes whole line,and hence whole text.

2) sed command

cat inputfile |sed 's/ .\{1,12\} //g' >outputfile

gives output

0.003745constrained
0.004549constrained
0.001689constrained
0.001673constrained
0.001475constrained
0.001931constrained
0.002565constrained
0.001327constrained

can anybody help me out?

regards

kilam

Last edited by Kilam orez; 11-30-2009 at 07:44 AM.
 
Old 11-30-2009, 08:26 AM   #2
MensaWater
LQ Guru
 
Registered: May 2005
Location: Atlanta Georgia USA
Distribution: Redhat (RHEL), CentOS, Fedora, CoreOS, Debian, FreeBSD, HP-UX, Solaris, SCO
Posts: 7,831
Blog Entries: 15

Rep: Reputation: 1669Reputation: 1669Reputation: 1669Reputation: 1669Reputation: 1669Reputation: 1669Reputation: 1669Reputation: 1669Reputation: 1669Reputation: 1669Reputation: 1669
grep -n [a-z] <FILE> |sed 's/:Max//' |sed 's/constrained//'

Where <FILE> is the file that contains the original text.

The -n tells grep to add line numbers. The [a-z] just says to find any line that has one of those characters (which should be every line if they all contain Max and constrained - you could just do "grep -n M").

The line number has a colon added after it and before the original text so the first sed gets rid of the colon and the "Max". The second sed gets rid of the "constrained".

Probably a cleaner one liner could be done but that one will work.
 
1 members found this post helpful.
Old 11-30-2009, 08:31 AM   #3
pixellany
LQ Veteran
 
Registered: Nov 2005
Location: Annapolis, MD
Distribution: Mint
Posts: 17,809

Rep: Reputation: 743Reputation: 743Reputation: 743Reputation: 743Reputation: 743Reputation: 743Reputation: 743
Your sed syntax says: "replace every instance of 1-12 characters, followed by a space". I don't get the same results on my system.

How about this:

Code:
sed 's/[[:alpha:] ]//g' inputfile > outputfile
(Note that "cat" is not required.)(replaces all letters or spaces)

sed can also number the lines, but you need an extra command to get the line numbers on the same line.

Really good SED tutorial:
http://www.grymoire.com/Unix/Sed.html

Last edited by pixellany; 11-30-2009 at 08:33 AM.
 
1 members found this post helpful.
Old 11-30-2009, 08:43 AM   #4
berbae
Member
 
Registered: Jul 2005
Location: France
Distribution: Arch Linux
Posts: 540

Rep: Reputation: Disabled
It seems easier with awk :
Code:
awk '{printf "%.2d %s\n",NR,$2}' datafile
01 0.003745
02 0.004549
03 0.001689
04 0.001673
05 0.001475
06 0.001931
07 0.002565
08 0.001327
 
1 members found this post helpful.
Old 11-30-2009, 08:52 AM   #5
ghostdog74
Senior Member
 
Registered: Aug 2006
Posts: 2,697
Blog Entries: 5

Rep: Reputation: 244Reputation: 244Reputation: 244
Code:
#!/bin/bash
read -p "Enter line number: " num
i=0
while read -r line
do 
  i=$((i+1))
  if [ "$i" -eq "$num" ];then
        line="${line//Max /}"
        echo "${line/constrained/}"
  fi
done <"file"
 
1 members found this post helpful.
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Command to delete words out of a text file. Dazamondo Linux - Newbie 13 06-30-2009 10:48 AM
sed to remove specific lines in a file tekmann33 Linux - Newbie 3 05-21-2009 03:41 PM
Remove sections of a xml file with sed viniciusandre Linux - Software 2 04-20-2009 01:18 PM
using sed to remove line in a comma-delimited file seefor Programming 4 03-10-2009 03:35 PM
sed: appending words residing in separate file mr_scary Programming 3 10-05-2006 01:25 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie

All times are GMT -5. The time now is 04:08 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration