12-19-2008
I don't see any reason for keeping directories and files separated, as you are mapping one file to each directory in a one-to-one correspondence. You could create two arrays and then access the items as you like, but I think a simpler and straightforward way for doing this could be just creating a list of files including the full path. You could loop through your list of files like this:
#!/usr/xpg4/bin/sh
#
#
MAINDIR=/apps/main1
FILECOMP=/apps/scripts/rename.txt
SCPINFO=box1:/path/to/location
theFilesList='Test1/Ready/file1.csv Test2/Ready/file2.csv Test3_Part3/Ready/file3.csv ....'
umask -S
# Dates the log file
echo "" >>$LOGDIR 2>&1
`/usr/bin/date >>$LOGDIR 2>&1`
# ------- START PROCESSING ---------
for i in $theFilesList
do
FNAMETMP=/usr/bin/find . -name *.txt -newer $FILECOMP 2>>$LOGDIR
# Rename
mv $FNAMETMP $i 2>>$LOGDIR
# Move to archive
mv $FNAMETMP archive 2>>$LOGDIR
# SCP to another server
scp $i $SCPINFO 2>>$LOGDIR
# Update the File for comparison
touch $FILECOMP
done
exit
If you are interested in using arrays, then you can define two arrays like:
set -A theDirectories Test1/Ready Test2/Ready ....
set -A theFiles file1.csv file2.csv ...
To access an array element:
${Directories[_position_of_the_item]}
To loop through an array:
for i in ${theFiles[@]}
do
echo $theFiles
done
To get the number of elements:
${#theFiles[@]}
That is using the Korn Shell though...
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
:confused: How can i rename a file 'x.log' to 'x_20020512 072909.log'
:eek: i'm using perl, with system command from a unix web server, and need to timestamp my logs if the above format (filename _ year month day hr min sec .log) (9 Replies)
Discussion started by: CompuTelSystem
9 Replies
2. Shell Programming and Scripting
hey all,
I have files in the format of
ABCD20061101
and
ABCDEF20061101
in one directory, I would like to change all ABCD20061101 to ABCDEF20061101 and the problem is if I do a simple pattern match of ABCD, then those ABCDEF20061101 would also... (2 Replies)
Discussion started by: mpang_
2 Replies
3. Shell Programming and Scripting
Hi,
I'm not very experienced in shell scripting and that's probably why I came across the following problem:
I do have several hundred pairs of text files (PF00x.spl and PF00x.shd) where the first file (PF00x.spl) needs to be renamed according a string that is included in the second file... (12 Replies)
Discussion started by: inCH
12 Replies
4. Shell Programming and Scripting
Hi Guys,
I have to rename about 180 files in different folders in linux. For example,
abc_110117.txt
eff_110117.txt
zzz_110117.txt
After renaming the files, these files should like like
abc.txt
eff.txt
zzz.txt
I created a small script to rename the files like
ls... (2 Replies)
Discussion started by: naveed
2 Replies
5. UNIX for Dummies Questions & Answers
I have various .sh and .pl files in one directory. I want to rename all the .sh files to .pl
i.e testscript.sh --> testscript.pl
I am trying to use mv *.sh *.pl
It doesnt work though!! (3 Replies)
Discussion started by: chrisjones
3 Replies
6. Shell Programming and Scripting
Hi Experts,
I am new to Unix i wrote below code to rename if the file size less than 8MB.
I might have more than one file to rename sometimes:wall:.
Please help me in writing the code for multiple files.
Eg:- 071720112200.file001 and 071820112200.file001
Single File... (1 Reply)
Discussion started by: rajubollas
1 Replies
7. UNIX for Dummies Questions & Answers
Hi,
I would like to rename several files, for example:
MSIRP_CatastropheLog_Data_Extract_-_TCAPMI_SMB_20111116_040028.txt
MSIRP_CatastropheLog_Data_Extract_-_TCAPMI_SMB_20111117_040023.txt
MSIRP_CatastropheLog_Data_Extract_-_TCAPMI_SMB_20111118_040039.txt... (3 Replies)
Discussion started by: wsoethe
3 Replies
8. Shell Programming and Scripting
Hi all,
I have a many folders with zipped files in them. The zipped files are txt files from different folders. The txt files have the same names. If i try to
find . -type f -name "*.zip" -exec cp -R {} /myhome/ZIP \; it fails since the ZIP files from different folders have the same names and... (2 Replies)
Discussion started by: pmkenya
2 Replies
9. Shell Programming and Scripting
I am getting some files with this mask:
aaaa_SP_bbb.txt
aaaa_FX_bbbb.txt
aaaabbbb.txt
I want to rename the files containing:
_SP_ -> Rename - >> fileSP.TXT
_FX_ -> Rename - >> fileFX.txt
and other file that does not contain these words rename them:
filenamexx.txt
as I... (4 Replies)
Discussion started by: Jomeaide
4 Replies
10. Shell Programming and Scripting
Hey guys,
I have wrote the following script to apply a module named "trinity" on my files. (it takes two input files and spit a trinity.fasta as output)
#!/bin/bash -l
#SBATCH -p node
#SBATCH -A <projectID>
#SBATCH -n 16
#SBATCH -t 7-00:00:00
#SBATCH --mem=128GB
#SBATCH --mail-type=ALL... (1 Reply)
Discussion started by: @man
1 Replies
DIFF3(1) General Commands Manual DIFF3(1)
NAME
diff3 - 3-way differential file comparison
SYNOPSIS
diff3 [ -exEX3 ] file1 file2 file3
DESCRIPTION
Diff3 compares three versions of a file, and publishes disagreeing ranges of text flagged with these codes:
==== all three files differ
====1 file1 is different
====2 file2 is different
====3 file3 is different
The type of change suffered in converting a given range of a given file to some other is indicated in one of these ways:
f : n1 a Text is to be appended after line number n1 in file f, where f = 1, 2, or 3.
f : n1 , n2 c Text is to be changed in the range line n1 to line n2. If n1 = n2, the range may be abbreviated to n1.
The original contents of the range follows immediately after a c indication. When the contents of two files are identical, the contents of
the lower-numbered file is suppressed.
Under the -e option, diff3 publishes a script for the editor ed that will incorporate into file1 all changes between file2 and file3, i.e.
the changes that normally would be flagged ==== and ====3. Option -x (-3) produces a script to incorporate only changes flagged ====
(====3). The following command will apply the resulting script to `file1'.
(cat script; echo '1,$p') | ed - file1
The -E and -X are similar to -e and -x, respectively, but treat overlapping changes (i.e., changes that would be flagged with ==== in the
normal listing) differently. The overlapping lines from both files will be inserted by the edit script, bracketed by "<<<<<<" and ">>>>>>"
lines.
For example, suppose lines 7-8 are changed in both file1 and file2. Applying the edit script generated by the command
"diff3 -E file1 file2 file3"
to file1 results in the file:
lines 1-6
of file1
<<<<<<< file1
lines 7-8
of file1
=======
lines 7-8
of file3
>>>>>>> file3
rest of file1
The -E option is used by RCS merge(1) to insure that overlapping changes in the merged files are preserved and brought to someone's atten-
tion.
FILES
/tmp/d3?????
/usr/libexec/diff3
SEE ALSO
diff(1)
BUGS
Text lines that consist of a single `.' will defeat -e.
7th Edition October 21, 1996 DIFF3(1)