![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Using grep to extract line number | mskarica | Shell Programming and Scripting | 8 | 06-25-2008 11:47 PM |
| How to grep / zgrep to output ONLY the matching filename and line number? | vvaidyan | UNIX for Dummies Questions & Answers | 3 | 03-12-2008 02:33 PM |
| grep the string with the line number | salaathi | Shell Programming and Scripting | 4 | 12-04-2007 08:42 AM |
| Get Filename and Line Number using grep | ceemh3 | UNIX for Dummies Questions & Answers | 4 | 09-17-2007 07:35 AM |
| is there any why to get the number of line in grep result ? | umen | UNIX for Dummies Questions & Answers | 1 | 03-16-2006 06:56 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Grep a number from a line in ksh
In file.name, I have a line that reads
$IDIR/imgen -usemonths -dropcheck -monitor -sizelimit 80000000 -interval 120 -volcal HSI How can I get the size limit, i.e. 80000000 out and pass it to a variable called SIZE? Thanks. I tried echo "grep sizelimit file.name" | sed -n -e 's/^.sizelimit\([0-9]*\) -interval.*$/\1/p' but it output nothing. |
| Forum Sponsor | ||
|
|
|
#2
|
|||
|
|||
|
So close...
Code:
SIZE=`grep sizelimit myfile | sed 's/^.*sizelimit //' | awk '{print $1}'`
There are other options that involve parsing the line (either in awk or shell), like: Code:
SIZE=0
grep sizelimit myfile | while read s
do
set -- $s
while [ $# -gt 0 ]
do
case $1 in
-sizelimit) SIZE=$2; break;;
*) shift;;
esac
done
done
|
|
#3
|
|||
|
|||
|
Quote:
The first option works fine. Did you mean it works even if "-sizelimit 80000000" is moved somewhere else in the line too? |
|
#4
|
|||
|
|||
|
Quote:
What it actually does is chops everything from the start of the line up to and including the word sizelimit and the space after, and then takes the first word from the remainder (which is the value of sizelimit). |
|||
| Google The UNIX and Linux Forums |