grep a part of a line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting grep a part of a line
# 1  
Old 08-22-2008
grep a part of a line

Hi,

In a file FILE, there is a line like this one

MOLECULE C2 H2

I want to extract "C2 H2". I can do it in two step in a script :
Code:
VARIABLE="`grep MOLECULE FILE`" # Assign "MOLECULE C2 H2"
VARIABLE=`echo ${VARIABLE/"MOLECULE "}` # Remove "MOLECULE ".

Then,
Code:
$echo $VARIABLE

gives
C2 H2

Is anyone know how to do it in a more straightforward way?

Thanks a lot,
Tipi

Last edited by Yogesh Sawant; 07-22-2011 at 05:48 AM.. Reason: added code tags
# 2  
Old 08-22-2008
Code:
VARIABLE="`grep MOLECULE < FILE | sed 's/^MOLECULE //'`"

should do it.

Last edited by Yogesh Sawant; 07-22-2011 at 05:48 AM.. Reason: added code tags
# 3  
Old 08-22-2008
Maybe this :

grep MOLECULE FILE | cut [some options]

?
# 4  
Old 08-22-2008
Quote:
Originally Posted by Danny.Chouinard
VARIABLE="`grep MOLECULE < FILE | sed 's/^MOLECULE //'`"

should do it.
Yes, that work fine!

I have a lot of variables to read from files, all of them will be defined in the same way :

VARIABLE [ white space ] [ value to be assign ]

Is your little script the best way to do it efficiently?

Thanks a lot for you answer,

Tipi
# 5  
Old 08-22-2008
Another way...
Code:
VARIABLE=$(cut -d ' ' -f2- file)

# 6  
Old 08-22-2008
Quote:
Originally Posted by shamrock
Another way...
Code:
VARIABLE=$(cut -d ' ' -f2- file)

Yeah, but I have more than one variable in the files :

MOLECULE C2 H2
ECUT 30
etc...

and your script return (I think) the whole second column(?)

Thanks for your help!

Tipi
# 7  
Old 08-22-2008
Here's a way to process more than one variable at a time:

Code:
file=somefile
varlist="MOLECULE ECUT"
for var in $varlist ; do
  val="`grep \"^$var \" < $file | sed \"s/^$var //\"`"
  eval "${var}=\"${val}\""
done
echo "Molecule=$MOLECULE"
echo "Ecut=$ECUT"


Last edited by Yogesh Sawant; 07-22-2011 at 05:49 AM.. Reason: added code tags
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to remove part of the line from start of the line?

Hello, I am java command from a shell script which will generate the below output on the command prompt signature Base64 :... (10 Replies)
Discussion started by: chetanojha
10 Replies

2. UNIX for Dummies Questions & Answers

Grep a part of a line from a file

Hi, I have a file with thousands of lines as below INSERT INTO T_DIM_CLNT(CLNT_KY,CLNT_OBJ_ID,ISI_CLNT_ID,OPERN_ID,CLNT_NM,PRMRY_SIC_CD,PRMRY_SIC_DSC,RET_AGE_NBR,REC_CRT_TS,REC_DATA_EXTRC_TS,ETL_LOG_KY) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)... (5 Replies)
Discussion started by: sudhakar T
5 Replies

3. Shell Programming and Scripting

Reading text file, comparing a value in a line, and placing only part of the line in a variable?

I need some help. I would like to read in a text file. Take a variable such as ROW-D-01, compare it to what's in one line in the text file such as PROD/VM/ROW-D-01 and only input PROD/VM into a variable without the /ROW-D-01. Is this possible? any help is appreciated. (2 Replies)
Discussion started by: xChristopher
2 Replies

4. Shell Programming and Scripting

[Solved] Printing a part of the last line of the specific part of a file

Hi, I have 80 large files, from which I want to get a specific value to run a Bash script. Firstly, I want to get the part of a file which contains this: Name =A xxxxxx yyyyyy zzzzzz aaaaaa bbbbbb Value = 57 This is necessary because in a file there are written more lines which... (6 Replies)
Discussion started by: wenclu
6 Replies

5. UNIX for Dummies Questions & Answers

can I grep a part of one line ?

<exp code="12556a" message="ok, fine4" displayMessage="jksdfj ksd" \> <exp code="123456a" message="ok, 2fine" displayMessage="jksdfj ksd" \> <exp code="12dfgda" message="1ok, fine" displayMessage="jksdfj ksd" \> now I want to cut code attribute and message attribute, such as ... (2 Replies)
Discussion started by: vincent_W
2 Replies

6. Shell Programming and Scripting

Grep regular expression to get part of a line

Hi I just started on GNU Grep with regex and am finding it very challenging and need to ask for help already... here is the problem, I have a page (MYFILE) which consists of the following.... <div> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden"... (2 Replies)
Discussion started by: noobie74645
2 Replies

7. Shell Programming and Scripting

How to get a part of the line(need help in using grep)

Hi, Suppose, DBconnection=jdbc: oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.x)(PORT=YYYY))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=project_db1))) This is a part of a file <filename> . I Need to get the value of SERVICE_NAME from this line… The... (4 Replies)
Discussion started by: Dpu
4 Replies

8. UNIX for Dummies Questions & Answers

How to use grep to get only part of a line...

Hello All. I have an output file which contains the phrase "Total DFT Energy =" and then a number. This occurs many times in the output file, and what I want is to pipe the numbers (which are all different) to a file so I can plot them. How do I grep "Total DFT Energy =" and then get the numbers... (3 Replies)
Discussion started by: EinsteinMcfly
3 Replies

9. Shell Programming and Scripting

Grep part of the line

How do I print only the values of the variables from set or env. For example I have the lines USER=USER XYZ='text' SHELL=/bin/bash How do I print only the part after or starting from = Let's say I have those lines in a list X If I run Y = echo $X | grep -o "=*$" Y won't contain... (3 Replies)
Discussion started by: Transsive
3 Replies

10. Solaris

How do i grep a pattern from part of LINE

Hi how do i grep only a part of the line from a file from all the lines. file: asdfgh 543212376 nag lkjh abhilash 543757858 How do i grep and print only 543212376 and 543757858 Can i grep something like 543* and print only that. (3 Replies)
Discussion started by: 123nagendrabhi
3 Replies
Login or Register to Ask a Question