Pipe text in to find command


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Pipe text in to find command
# 1  
Old 01-28-2012
Pipe text in to find command

I would like to know why this command does not work.
I have a script which connects to and ftp site.
After getting the remote files localy i need move each remote file to a archive folder on the FTP site

*Please also note that some of the files have spaces in the file name.

Im trying to extract the list of files names from the temp output file temp_rem_file_list.

Code:
 
echo "$TIME_STAMP - TEST MODE"
REMOTE_FILELIST=`ftp -in <<EOF
open $REMOTE_SERVER
user $USER $PW
cd $IN_REMOTE_SOURCE_DIR
ls
quit
 
echo $REMOTE_FILE_LIST > temp_rem_file_list
cat temp_rem_file_list
cat temp_rem_file_list |find "*.txt" -printf %f\\n >downloadList
echo "$TIME_STAMP - Printing download list"
cat downloadList
rm temp_rem_file_list
 
 
for SERVER_FILE in `cat downloadList`
 do
 echo "$TIME_STAMP - Server file processing is $SERVER_FILE"
   if [ -e "$IN_LOCAL_TARGET_DIR/$SERVER_FILE" ];then
   #if the file exists on the local machine
   else
   #File does not exist 
 fi

contents of temp_rem_file_list

Code:
 open localhost user if_jjan welcome1 cd Out ls drw-rw-rw- 1 ftp ftp 0 Jan 27 11:40 . drw-rw-rw- 1 ftp ftp 0 Jan 27 11:40 .. drw-rw-rw- 1 ftp ftp 0 Jan 26 00:33 archive -rw-rw-rw- 1 ftp ftp 0 Jan 27 11:21 test.txt -rw-rw-rw- 1 ftp ftp 0 Jan 27 11:22 UBS-test 1 test.txt -rw-rw-rw- 1 ftp ftp 0 Jan 27 11:23 UBS-test 2 test.txt quit

Line of code giving the problem.
Code:
 
cat temp_rem_file_list |find "*.txt" -printf %f\\n >downloadList

Im expecting downloadList to contain the following file names
test.txt
UBS-test 1 test.txt
UBS-test 2 test.txt

Thank you in advance for your time and for any pointers.

Last edited by juanjanse; 01-28-2012 at 06:30 PM..
# 2  
Old 01-28-2012
find doesn't read from standard input, that's why. find doesn't read text at all, really -- find searches folders for files, not files for strings.

grep or awk would be more suitable for extracting data from a file.

I think your data got garbled, all the linefeeds ripped out. Could you post again with the linefeeds, and put it in code tags?
# 3  
Old 01-28-2012
Thanks for your reply. The code does work on the CMD but when i add it to the bash script it fails.

Last edited by juanjanse; 01-28-2012 at 05:17 PM..
# 4  
Old 01-29-2012
Sorry, the script posted contains too many scripting errors to follow exactly what it was intended to do. I get the gist of finding out what files are present on the remote server, then transferring them.

What might be useful is to post sample output from a ftp session showing the exact format of:
Code:
ls
# And just in case these commands work on your system and give a more useful format when in a ftp session:
ls -1
dir
dir /b

Further to Corona688 the MSDOS "find" command is more like a very basic unix "grep" command. There the similarity ends.


There is a little-used syntax to the "ftp" command "dir" which outputs the results of the "dir" to a local file. This should help us isolate the output from "dir" from the general "ftp" session output.



Are you able to post a representative command-prompt session which works - along with a bit of anotation about what you are trying to achieve along with sample input data and expected output. Some sample data showing "with spaces" and "without spaces" would help. We are particularly interested in how you dealt with filenames containing space characters in the command-prompt session.

As usual it always helps to post what Operating Systems and versions are involved in a file transfer problem.


Footnote: We have to get rid of those "for" statements if any of the filenames contain space characters. I continue to wonder where this syntax comes from as I have never seen it in a book or training material.

Last edited by methyl; 01-29-2012 at 06:55 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find or ls with pipe to the command file

Hello all! I am trying to find the "Notes" backup from my iPhone in my folder ~/Library/Application\ Support/MobileSync/Backup/ which used to be in the sqlite file ca3bc056d4da0bbf88b5fb3be254f3b7147e639c. But since an update of the MacOS it is still there, but not updated anymore. (This is... (9 Replies)
Discussion started by: marek
9 Replies

2. SuSE

Find command doesn't pipe the output as required.

Hi, I am using below code snippet to echo/display the files found (matching a pattern from searchstring.out file) and the corresponding owner. while read j do echo "Pattern to search is:- $j" find / -name "*$j*" |\ while read k do echo "File found is:- $k" owner=$(ls... (9 Replies)
Discussion started by: Vipin Batra
9 Replies

3. Shell Programming and Scripting

Match text and print/pipe only that text

I'm trying to pull an image source url from a html source file. I'm new with regex. I'm in BaSH. I've tried grep -E 'http.*jpg' file which highlights the text, but gives me 2 problems: 1) Results aren't stand alone and can't be piped to another command. (I believe it includes everything in... (5 Replies)
Discussion started by: amx401
5 Replies

4. Linux

Search only text files with 'find' command?

I've been using this to search an entire directory recursively for a specific phrase in my code (html, css, php, javascript, etc.): find dir_name -type f -exec grep -l "phrase" {} \; The problem is that it searches ALL files in the directory 'dir_name', even binary ones such as large JPEG... (2 Replies)
Discussion started by: Collider
2 Replies

5. UNIX for Dummies Questions & Answers

How to pass file text into find command

Hi all, I have a large text file and also a smaller list of program names. I want to find out how many of those programs exist in the large text file. Can someone help me with the command/script please. The program list is along the lines of tranwe2 tranwe3 tranye5 etc so basically I... (5 Replies)
Discussion started by: Grueben
5 Replies

6. UNIX for Dummies Questions & Answers

using grep command to find the pattern of text in all directories.

Hi all, i want to know the usage of grep command to find the pattern of text in all the directory and subdirectory. (1 Reply)
Discussion started by: vinothrajan55
1 Replies

7. Shell Programming and Scripting

How to redirect a input of find command into a text file

Hello friends, I want a command to print the reult files from find command into a text file.:) Iam looking from forum memebers. PLZ help me.ASAP Thanks in Advance, Siva Ranganath CH (5 Replies)
Discussion started by: sivaranga001
5 Replies

8. UNIX for Dummies Questions & Answers

AWK Command to find text in specific column

I'm new to scripting and would appreciate any help. I have a list of over 20 words in File1 that I need to find in columns 10-15 of File2. I need the entire row of File2 that the File1 list matches. I originally used a grep command which works, but provides File1 results that can be found... (3 Replies)
Discussion started by: Chillin
3 Replies

9. UNIX for Dummies Questions & Answers

sorting files with find command before sending to text file

i need help with my script.... i am suppose to grab files within a certain date range now i have done that already using the touch and find command (found them in other threads) touch -d "$date_start" ./tmp1 touch -d "$date_end" ./tmp2 find "$data_location" -maxdepth 1 -newer ./tmp1 !... (6 Replies)
Discussion started by: deking
6 Replies

10. Shell Programming and Scripting

Looking for command(s)/ script to find a text string within a file

I need to search through all files with different file suffixes in a directory structure to locate any files containing a specific string (5 Replies)
Discussion started by: wrwelden
5 Replies
Login or Register to Ask a Question