How to loop around the contents of file?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to loop around the contents of file?
# 8  
Old 06-17-2013
Yes,
I'm able to get the output now. Thank You
Now i had an issue with If condition inside loop
I tried like below and getting error : not found
Code:
file="/etc/nms.txt"
chek="ABCD"
# while loop
while read line
do
        # display line or do somthing on $line
        echo "$line"
         if ["$chek" == "$line" ]
           then
            echo "Equal"
         fi
done <"$file"

Where i'm doing wrong here. Please advice
# 9  
Old 06-17-2013
Quote:
Originally Posted by smile689
Yes,
I'm able to get the output now. Thank You
Now i had an issue with If condition inside loop
I tried like below and getting error : not found
Code:
file="/etc/nms.txt"
chek="ABCD"
# while loop
while read line
do
        # display line or do somthing on $line
        echo "$line"
         if ["$chek" == "$line" ]
           then
            echo "Equal"
         fi
done <"$file"

Where i'm doing wrong here. Please advice
Please put space between square brackets.

like

Code:
if [ "$chek" == "$line" ]

# 10  
Old 06-17-2013
Try this,
Code:
file_nm="/etc/nms.txt"
mLine="ABCD"
cat $file_nm|while read line
do
echo $line
            if [ $mline == $line ]
            then
                  echo $mLine
            fi
done

This should solve your purpose

Last edited by Franklin52; 06-18-2013 at 02:00 PM.. Reason: Please use code tags
# 11  
Old 06-17-2013
Quote:
Originally Posted by rajamadhavan
Code:
for data in $(cat $file_nm)

Because of field splitting, this will loop over words, not lines.

Quote:
Originally Posted by crystal_pup
change the for code as follows :-
Code:
for data in `echo {$file_nm}`  do   echo "$data" done

This doesn't even read the file. It merely echoes the file name, possibly breaking it into pieces if it contains whitespace, then echoes the pieces of the file name. Not a single line of the file's contents is read.

Quote:
Originally Posted by anbu23
Code:
IFS=""; for i in $(cat $file)
do
        echo $i
done

This won't loop over the lines of the file. The entire file's contents will be assigned en masse to i and the loop will iterate at most once (if the file is empty, it won't iterate at all). A functional equivalent:
Code:
i=$(cat $file)
[ "$i" ] && echo "$i"

Quote:
Originally Posted by pamu
Use while loop instead of for lop..

Code:
file_nm="/etc/nms.txt"
while read data
do
echo $data
done<$file_nm

By far the best suggestion, but it's still inadequate for arbitrary text ("arbitrary" being the operative word).

To preserve leading and trailing whitespace, IFS should be unset in read's environment.

To prevent backslashes from being treated specially, read's raw mode should be used.

echo is unsuitable for printing arbitrary text. echo does not support -- to signal the end of option processing. If the arbitrary text looks like a valid option, the output will be mangled. printf should be used instead.

Finally, $data should be quoted to preserve its whitespace.
Code:
while IFS= read -r data; do
    printf '%s\n' "$data"
done

Regards,
Alister
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Output file name and file contents of multiple files to a single file

I am trying to consolidate multiple information files (<hostname>.Linux.nfslist) into one file so that I can import it into Excel. I can get the file contents with cat *Linux.nfslist >> nfslist.txt. I need each line prefaced with the hostname. I am unsure how to do this. --- Post updated at... (5 Replies)
Discussion started by: Kentlee65
5 Replies

2. Shell Programming and Scripting

ksh Script, Reading A File, Grepping A File Contents In Another File

So I'm stumped. First... APOLOGIES... my work is offline in an office that has zero internet connectivity, as required by our client. If need be, I could print out my script attempts and retype them here. But on the off chance... here goes. I have a text file (file_source) of terms, each line... (3 Replies)
Discussion started by: Brusimm
3 Replies

3. Shell Programming and Scripting

Shell script (sh file) logic to compare contents of one file with another file and output to file

Shell script logic Hi I have 2 input files like with file 1 content as (file1) "BRGTEST-242" a.txt "BRGTEST-240" a.txt "BRGTEST-219" e.txt File 2 contents as fle(2) "BRGTEST-244" a.txt "BRGTEST-244" b.txt "BRGTEST-231" c.txt "BRGTEST-231" d.txt "BRGTEST-221" e.txt I want to get... (22 Replies)
Discussion started by: pottic
22 Replies

4. Shell Programming and Scripting

For loop inside awk to read and print contents of files

Hello, I have a set of files Xfile0001 - Xfile0021, and the content of this files (one at a time) needs to be printed between some line (lines start with word "Generated") that I am extracting from another file called file7.txt and all the output goes into output.txt. First I tried creating a for... (5 Replies)
Discussion started by: jaldo0805
5 Replies

5. Shell Programming and Scripting

Folder contents getting appended as strings while redirecting file contents to a variable

Hi one of the output of the command is as below # sed -n "/CCM-ResourceHealthCheck:/,/---------/{/CCM-ResourceHealthCheck:/d;/---------/d;p;}" Automation.OutputZ$zoneCounter | sed 's/$/<br>/' Resource List : <br> *************************** 1. row ***************************<br> ... (2 Replies)
Discussion started by: vivek d r
2 Replies

6. Shell Programming and Scripting

Replace partial contents of file with contents read from other file

Hi, I am facing issue while reading data from a file in UNIX. my requirement is to compare two files and for the text pattern matching in the 1st file, replace the contents in second file by the contents of first file from start to the end and write the contents to thrid file. i am able to... (2 Replies)
Discussion started by: seeki
2 Replies

7. Shell Programming and Scripting

I want to delete the contents of a file which are matching with contents of other file

Hi, I want to delete the contents of a file which are matching with contents of other file in shell scripting. Ex. file1 sheel,sumit,1,2,3,4,5,6,7,8 sumit,rana,2,3,4,5,6,7,8,9 grade,pass,2,3,4,5,6,232,1,1 name,sur,33,1,4,12,3,5,6,8 sheel,pass,2,3,4,5,6,232,1,1 File2... (3 Replies)
Discussion started by: ranasheel2000
3 Replies

8. UNIX for Dummies Questions & Answers

Help with searching for a file in a directory and copying the contents of that file in a new file

Hi guys, I am a newbie here :wall: I need a script that can search for a file in a directory and copy the contents of that file in a new file. Please help me. :confused: Thanks in advance~ (6 Replies)
Discussion started by: zel2zel
6 Replies

9. UNIX for Dummies Questions & Answers

compare 2 file contents , if same delete 2nd file contents

Give shell script....which takes two file names as input and compares the contents, is both are same delete second file's contents..... I try with "diff"...... but confusion how to use "diff" with if ---else Thanking you (5 Replies)
Discussion started by: krishnampkkm
5 Replies

10. Shell Programming and Scripting

Creating file contents using contents of another file

Hi, I am not sure how to start doing this so I hope to get some advice as to how to start. I have 2 files. The source file contains data that I needed is in columns delimited by ";". For example, in this format: "CONTINENT","COUNTRY","CITY","ID" "asia","japan","tokyo","123"... (21 Replies)
Discussion started by: ReV
21 Replies
Login or Register to Ask a Question