Visit Our UNIX and Linux User Community


need help for finding files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting need help for finding files
# 1  
Old 06-09-2011
need help for finding files

Hi,

I am trying to find two files in a if condition to do a task

Please find below the script that i have built
Code:
while read line
do
filename = $line

if [[ -f $filename+".dat"] && [ -f $filename+".trg"]]; then
    cp /tmp/$filename.dat /sftp/$filename.dat
else
    cat $filename "no trg file associated" >> /sftp/sftp_log.$datetime
fi

done < /tmp/sftp.uniq

I am getting the below error
Code:
conditional binary operator expected
syntax error near `-f'
`if [[ -f $filename+".dat"] && [ -f $filename+".trg"]]; then'

Please suggest, how can i correct this

Moderator's Comments:
Mod Comment Please use code tags[1]. Thanks

Last edited by Scott; 06-09-2011 at 05:10 PM.. Reason: Code tags...
# 2  
Old 06-09-2011
Brackets don't work that way. You can't mix [[ ]] and [ ] inside each other.

Also, string concatenation doesn't work that way. $var+".ext" will give you "filename+.ext"

Also, equals don't work that way. Don't put any extra spaces between the variable, the equals, and the contents.

Also, brackets do need a space between them and the things inside them.

Also, cat doesn't work that way. There's no file named "no trg file associated" so it will throw an error. I think you wanted echo.

Also, there's no reason to reopen /sftp/sftp_log.$datetime umpteen times when you can just redirect the loop's output once.

Also, you should use the ${filename} syntax instead of $filename, since the shell will always know when the var begins and ends.

Code:
while read line
do
        filename="$line"

        if [[ -f "${filename}.dat" ]] && [[ -f "${filename}.trg" ]]; then
                cp /tmp/$filename.dat /sftp/$filename.dat
        else
                  echo "${filename}: no trg file associated"
        fi
done < /tmp/sftp.uniq >> /sftp/sftp_log.$datetime


Last edited by Corona688; 06-09-2011 at 01:51 PM..
# 3  
Old 06-09-2011
A space is missing before ]]
Code:
...trg" ]]...

# 4  
Old 06-09-2011
Thank you for your replies guys...

I tried the code in red with the space

That did work a bit, it went into the while loop and printing the error message multiple times

Error message as below

filename: command not found

seems like the value is not getting into filename variable

filename = "$line"

Please suggest

---------- Post updated at 01:02 PM ---------- Previous update was at 11:42 AM ----------

Got it, i found that there is no reason to assign the line value to filename, hence used the line itself and it is working fine.

Thanks for all your help
# 5  
Old 06-09-2011
That's not precisely my code you're using, you added things here and there, like spaces.
Quote:
Originally Posted by ramkiran77
filename = "$line"
Quote:
Originally Posted by Corona688
Also, equals don't work that way. Don't put any extra spaces between the variable, the equals, and the contents.

Previous Thread | Next Thread
Test Your Knowledge in Computers #726
Difficulty: Medium
Satoshi Yamashita is a pseudonym for the anonymous creator or creators of Bitcoin.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Finding files with wc -l results = 1 then moving the files to another folder

Hi guys can you please help me with a script to find files with one row/1 line of content then move the file to another directory my script below runs but nothing happens to the files....Alternatively Ca I get a script to find the *.csv files with "wc -1" results = 1 then create a list of those... (5 Replies)
Discussion started by: Dj Moi
5 Replies

2. Shell Programming and Scripting

Finding Files By Name

Finding Files - I am learning more about scripting each day but I am having a hard time figuring out how to write a script to pick particular files from a list ls command. Basically I have several hundred files with the file name being: AAB110321015704.raw or BBA110321015704.raw WHERE the... (6 Replies)
Discussion started by: rdburg
6 Replies

3. Shell Programming and Scripting

Need Help in Finding Files ::

Hi All , i am in progress of creating a script which should find a file a.txt , in a particular root directory . This should actually Search all the Sub directories and copy those files and FTP it to a server . Need a Input how to Proceed on this Thankyou guys (6 Replies)
Discussion started by: raghav1982
6 Replies

4. Shell Programming and Scripting

finding in files

hi, can we re-write the following command in a way so that we dont need to use and external commands ( grep ) to save calls to fork() and exec()... find . -name "*.mk" | xargs grep -i libSplitMove.a thanks Vivek (1 Reply)
Discussion started by: vivek.gkp
1 Replies

5. Shell Programming and Scripting

finding files

Hi guys just wondering if there is a way to scan the whoel file system and find files that have not been used over a number of days, using the script (5 Replies)
Discussion started by: musicmancanora
5 Replies

6. Shell Programming and Scripting

Finding files

Hello guys, Please your help, i need to find all the files writed in the last 5 minutes, but without create another file using touch (like im doing right now): I am doing this: anio=`date +%Y` mes=`date +%m` dia=`date +%d` hora=`date +%H` minuto2=`date +%M` minuto=`expr... (1 Reply)
Discussion started by: lestat_ecuador
1 Replies

7. Shell Programming and Scripting

Help with finding files

Ok, here it is: I have a system that logs certain files every day. Every time a new day dawns, the system will create a folder with the name that is respective to the day's date (12-06-07) and start putting new files in that folder. I have another system that needs these files. I am going to:... (1 Reply)
Discussion started by: bbbngowc
1 Replies

8. Shell Programming and Scripting

finding duplicate files by size and finding pattern matching and its count

Hi, I have a challenging task,in which i have to find the duplicate files by its name and size,then i need to take anyone of the file.Then i need to open the file and find for more than one pattern and count of that pattern. Note:These are the samples of two files,but i can have more... (2 Replies)
Discussion started by: jerome Sukumar
2 Replies

9. Solaris

finding files

Hi, I am trying to find all files ending in a particular file extension, ie all files ending with .pdf find / -name *.pdf But this doesnt seem to work, ie it doesnt find the files, is there a better way of doing this? I am using solaris 9 (4 Replies)
Discussion started by: frustrated1
4 Replies

10. UNIX for Dummies Questions & Answers

finding files

I need to write a script that will find all of the files in my current directory that contain a html extension that contains a URL with my user ID as a command line argument and have yhe script display the names of the files selected along with a count of the files found. I'm totally lost ???? Any... (4 Replies)
Discussion started by: jseiple
4 Replies

Featured Tech Videos