On Wed, Sep 07, 2005 at 11:18:02AM -0400, Magnus Andersen wrote: > I'd use the wc command with the -m flag to ge the number of charactes used > in the file name. You could use an awk substr to mod the name if longer than > 64. I'd actually use "cut -d'.'" to get the filename and suffix. Use "basename" if there's a chance there'll be a path prepended. Then use the "wc -m" as recommended to determine string length. (Actually, I don't see how "wc -m" is different than the traditional "wc -c", but then, I just _wrote_ cut and paste...what do I know...hmm... they took my name out of the latest man page???) As to stripping the filename, well, "cut -c1-64" is a lot lighter than awk. However, you have to worry about identical filenames in the first 64 characters; I'd actually strip it down to something like 61 characters, and append a sequence number to guarantee uniqueness. Something like: COUNT=0; MAXFNLEN=64; CUTFNLEN=61; cd $DESTDIR; for FILE in * do FNAME=`echo $FILE | cut -d'.' -f1`; FSUFF=`echo $FILE | cut -d'.' -f2`; # If there is no suffix, cut will return the filename again if [ "$FNAME" = "$FSUFF" ] then FSUFF=""; fi; if [ `echo -n $FNAME | wc -c` -gt $MAXFNLEN ] then FNAME=`echo $FNAME | cut -c1-$CUTFNLEN``printf "%03d" $COUNT`; let COUNT=$COUNT+1; fi; if [ "$FSUFF" ] then OUTFNAME=$FNAME.$FSUFF; else OUTFNAME=$FNAME; fi; <do whatever you're going to do with the filename here> done; Cheers, -- Dave Ihnat ignatz@xxxxxxxxxx -- redhat-list mailing list unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe https://www.redhat.com/mailman/listinfo/redhat-list