LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Help Parsing Files With Find (https://www.linuxquestions.org/questions/linux-newbie-8/help-parsing-files-with-find-594271/)

onacorpuscle 10-24-2007 01:12 PM

Help Parsing Files With Find
 
Hello collegues

I have a problem when parsing files. I'm writing a (handler )shell like these:
# Profile and parameter App file
. /usr/.profile
. /usr/app/Proteus/config.txt
# Path of Working dirs.
LOGFILE=$PROT_HOME/$PROT_LOG
PATH_IN=$XTRN_HOME/$PROT_PATH_IN
PATH_OUT=$PROT_HOME/$PROT_PATH_OUT
PATH_BIN=$PROT_HOME/$PROT_PATH_EXE
PROC_TYP=$PROT_PRC_MOD
`date +"%d/%m/%y %H:%M:%S # prcProteus.sh # PROTEUS # Initailizing ">>$LOGFILE`
...
# Searching files to process
FILES=`find $PATH_IN -type f -name "*.$PROT_IN_FILE_TYPE" | cut -f1 -d .`
...
Where $PROT_IN_FILE_TYPE is the file extension, txt for example.
The results of FILES variable is like this:
data/in/CANCEL_20071020
data/in/LOAD_20071019
data/in/LOAD_20071020
...
I need to cut the "data/in" expression dinamically. I atempt with awk like this:
awk '{print(substr($1,length($1)-position of last "/"+1,length($1)-(length($1)-position of last "/"+1)))}'| sort

In sql is very easy with the "instr" command...

Any suggestions?

Thanks a lot!

Xavier

onacorpuscle 10-25-2007 03:56 AM

Hi

I resolve it, with a different approach, by using "ls - l" rather than "find".
Previous approach:
...
# Searching files to process
#FILES=`find $PATH_IN -type f -name "*.$PROT_IN_FILE_TYPE" | cut -f1 -d .`
...
New approach:
...
# Searching files to process
cd $PATH_IN
FILES=ls -l *.$PROT_IN_FILE_TYPE | cut -c57- | cut -f1 -s -d.

Very simple, but efficient.

Bye!

Xavier


All times are GMT -5. The time now is 04:01 AM.