LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (http://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Comparing to specific line in file bash script (http://www.linuxquestions.org/questions/linux-newbie-8/comparing-to-specific-line-in-file-bash-script-4175437466/)

ShiGua 11-16-2012 01:28 PM

Comparing to specific line in file bash script
 
Hi,

I have a value stored in x and I need to compare it to the numbers in every other line of a file. The file contains alternating lines of numbers and letters:

aaaa1111
AAAAAAAA
bbbb2222
BBBBBBBB
cccc3333
CCCCCCCC

I need to compare x to the numbers in every other line without the first four characters of that line. So I want to compare x to 1111, then to 2222, then 3333. This is to be the condition in an if statement:

if [ $x = (line 1 without first four characters) ]
or
if [ $x = (line 3 without first four characters) ]

I know I would have to use something along the lines of = $(sed something) or maybe cut, but I don't know how to reference the file by line.

Let me know if I need to be more clear. Thanks for any help!

TB0ne 11-16-2012 02:35 PM

Quote:

Originally Posted by ShiGua (Post 4830961)
Hi,
I have a value stored in x and I need to compare it to the numbers in every other line of a file. The file contains alternating lines of numbers and letters:

aaaa1111
AAAAAAAA
bbbb2222
BBBBBBBB
cccc3333
CCCCCCCC

I need to compare x to the numbers in every other line without the first four characters of that line. So I want to compare x to 1111, then to 2222, then 3333. This is to be the condition in an if statement:

if [ $x = (line 1 without first four characters) ]
or
if [ $x = (line 3 without first four characters) ]

I know I would have to use something along the lines of = $(sed something) or maybe cut, but I don't know how to reference the file by line.

As with your other thread, post what you've written/tried so far, and tell us where you're stuck, and we'll be happy to help. However, this sounds very much like a homework question, and as a rule, you're not going to get someone here to do it for you.

If you show you've put some effort into things, and tell us where you're stuck, you're much more likely to get a favorable response.

pixellany 11-16-2012 04:33 PM

Quote:

but I don't know how to reference the file by line.
Take a look at the SED addressing options. Examples:

Code:

#print lines by number (3 thru 8):
sed -n '3,8p' filename

#print lines by content (begin with AAA and end with CCC):
sed -n '/AAA/,/CCC/p' filename

#print lines containing at least one number:
sed -n '/[0-9]/p' filename

Everything you ever wanted to know about SED:
http://www.grymoire.com/Unix/Sed.html

pixellany 11-16-2012 04:42 PM

another good trick here---found by Google using "sed print line)
http://www.linuxforums.org/forum/pro...using-sed.html


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