Sponsored Content
Top Forums Shell Programming and Scripting Find, Append, Move & Rename Multiple Files Post 302133819 by Trapper on Sunday 26th of August 2007 09:11:45 AM
Old 08-26-2007
Here's the dos batch code. I note that in my original post that I failed to mention that the original files I am working with also get moved off to an archive, unmodified. There's never a filename conflict because each original file has a date name ( s082607.log, etc ). I've explained each step in the process. I have no doubt this dos batch could be more efficient but I am no dos batch pro. The script did work correctly for over 3 years in both NT4 and Win2K. It just doesn't run under wine NT4 or Win2k emulation even though the drive and directory layouts remain the same. Perhaps the wine cmd interpreter doesn't like the code or something.

Code:
:::: Find all logs except most recent ::::
for /f "skip=1 delims=" %%a in ('dir /a-d /b /o-d "d:\buzzard\logs\s-series\*.log" ')

:::: Append a text header message to each found file and copy to a temp dir :::::
do copy d:\buzzard\scripts\addon.txt+d:\buzzard\logs\s-series\"%%a" d:\buzzard\temp\sendlogs\s-series\"%%a"

::::: Rename modified files :::::
ren d:\buzzard\temp\sendlogs\s-series\*.log *.101

::::: Move the modified files to a mail queue for future delivery ::::
move d:\buzzard\temp\sendlogs\s-series\*.101 e:\promail\queue\

::::: Move originals - except most recent - off to an archive :::::
for /f "skip=1 delims=" %%b in ('dir /a-d /b /o-d "d:\buzzard\logs\s-series\*.log" ') do move d:\buzzard\logs\s-series\"%%b" "f:\buzzard\logs\s-series\

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Move files and rename ??

1. If I have a file-yyyymmdd.dat in a directory DATA1, then how do I move this file to directory DATA2 and the file name change to file-yyyymmdd.dat.currenttime I can manual do this $mv fileA-yyyymmdd.dat ./DATA2/fileA-yyyymmdd.dat.`date +%Y%m%d%H%M%S` but how do I move all of the files in... (1 Reply)
Discussion started by: sabercats
1 Replies

2. UNIX for Dummies Questions & Answers

Using Rename to move files

I am connecting to a remote server (Unix) and doing a ftp dowmload of files. The script (VB script) works fine except for not being able to move the downloaded files on the remote server to another folder. I need to move all files with an .asc extesnion from folder "tovecellio_edi" to folder... (1 Reply)
Discussion started by: snufse
1 Replies

3. Shell Programming and Scripting

Rename/Move files and schedule the script

Hello, I'm new in the forum and in UNIX scripting, what I need is to write a simple batch script that renames or move the files back & forth from one directory to another, and then schedule the script to run on the server when the scheduled down time is, which is on Thursdays at 8pm and during... (5 Replies)
Discussion started by: dannyghost
5 Replies

4. Shell Programming and Scripting

Need to move and rename a list of files

Hi, I need to do something easy but I can't seem to figure out how to do this. Let's say I have 6 files in the directory below: /ebsbeta_f/flash/EBSUATQB/onlinelog o1_mf_6_55klt7nr_.log o1_mf_3_55klskj4_.log o1_mf_4_55klsrl1_.log o1_mf_5_55klt09p_.log o1_mf_2_55klv1ts_.log... (10 Replies)
Discussion started by: exm
10 Replies

5. Shell Programming and Scripting

Find & Replace string in multiple files & folders using perl

find . -type f -name "*.sql" -print|xargs perl -i -pe 's/pattern/replaced/g' this is simple logic to find and replace in multiple files & folders Hope this helps. Thanks Zaheer (0 Replies)
Discussion started by: Zaheer.mic
0 Replies

6. Shell Programming and Scripting

Script to find & replace a multiple lines string across multiple php files and subdirectories

Hey guys. I know pratically 0 about Linux, so could anyone please give me instructions on how to accomplish this ? The distro is RedHat 4.1.2 and i need to find and replace a multiple lines string in several php files across subdirectories. So lets say im at root/dir1/dir2/ , when i execute... (12 Replies)
Discussion started by: spfc_dmt
12 Replies

7. Shell Programming and Scripting

Find all images, append unique prefix to name and move to different directory

Hi, I have a directory with Multiple subdirectories and 1000s of pictures (jpg) in each directory. The problem is that each directory has a 001.jpg in them. I want to append a unique name (the directory_name)would be fine. and then move them to one main backup directory once they have been... (1 Reply)
Discussion started by: kmaq7621
1 Replies

8. UNIX for Dummies Questions & Answers

Rename files in a directory and move them

I have a directory e2e_ms_xfer/cent01 this contains the multiple files some of which will be named below with unique date time stamps e2e_ms_edd_nom_CCYYMMDD_HHMM.csv What I want to do is in a loop 1) Get the oldest file 2) Rename 3) Move it up one level from e2e_ms_xfer/cent01 to... (1 Reply)
Discussion started by: andymay
1 Replies

9. Shell Programming and Scripting

SBATCH trinity for multiple files and rename/move the output files

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

10. Shell Programming and Scripting

Rename (move) multiple files on remote server using sftp

I want to rename (move) multiple files on remote server. I tried the following command to move all TXT files from my_dir directory to /new_dir. But it does not work. Any help? #!/bin/ksh sftp -dev3 << ABC cd my_dir $(for i in TXT; do echo "ls *.$i" ; rename $x /new_dir/$x;... (1 Reply)
Discussion started by: Soham
1 Replies
SHTOOL-ROTATE.TMP(1)					      GNU Portable Shell Tool					      SHTOOL-ROTATE.TMP(1)

NAME
shtool-rotate - GNU shtool log file rotation SYNOPSIS
shtool rotate [-v|--verbose] [-t|--trace] [-f|--force] [-n|--num-files count] [-s|--size size] [-c|--copy] [-r|--remove] [-a|--archive-dir dir] [-z|--compress [tool:]level] [-b|--background] [-d|--delay] [-p|--pad len] [-m|--mode mode] [-o|--owner owner] [-g|--group group] [-M|--migrate cmd] [-P|--prolog cmd] [-E|--epilog cmd] file [file ...] DESCRIPTION
This command rotates a logfile file by subsequently creating up to count (optionally compressed) archive files of it. Archive files are named "file.number[compress-suffix]" where number is the version number, 0 being the newest and "count-1" the oldest. A rotation step consists of the following steps 1. remove last archive file 2. shift archive file numbers 3. create archive file 0 from file 4. truncate/recreate file OPTIONS
The following command line options are available. -v, --verbose Display some processing information. -t, --trace Enable the output of the essential shell commands which are executed. -f, --force Force silent creation of archive directory if it does not exists. Also skip missing intermediate logfiles in the rotation step. Default is to exit with error in both cases. FIXME -n, --num-files count Create count archive files. Default is 10. -s, --size size Only rotate if logfile exceeds size. The argument size can be specified also with the trailing units "K" (kilo), "M" (mega) or "G" (giga). The "prolog" and "epilog" are only executed if rotation actually takes place. -c, --copy Copy file to archive then truncate original. The default is to move file to archive. Unless an application reopens its logfile it will continue to write to the same file. In the default move case the application will write to the archive which it had previously opened as file. In the copy case the application will write to the original file. The drawback of the copy approach is that logfile entries are lost when they are written to file between the execution of the copy and the truncation operation. The drawback of the move approach is that the application needs to detect the move or must be triggered to reopen its log (i.e. through epilog). -r, --remove Removes file after rotation instead of providing a new empty file. -a, --archive-dir dir Specify the archive directory. Default is to create archives in the same directory as file is located. -z, --compress [tool:]level Enables compression of archive files with compression level level By default, the tools bzip2(1), gzip(1) and compress(1) are searched for in $PATH, but one also can override this by prefixing the compression level with one of the three particular tool names. -b, --background Enable background compression. -d, --delay Delays the compression of archive file number 0. This is useful if ``-c'' is not used, because an application might continue to write to archive file 0 through an already open file handle. -p, --pad len Enables padding with leading zeros in the number part of the filename "file.numbercompress-suffix". The default padding len is 1. This is interesting if more than 10 archive files are used, because it leads to still sorted directory listings. -m, --mode mode The file mode applied to the created files, see chmod(1). Setting mode to "-" skips this step and leaves the operating system default which is usually based on umask(1). Some file modes require superuser privileges to be set. Default is 0755. -o, --owner owner The file owner name or id applied to the created files, see chown(1). This option requires superuser privileges to execute. Default is to skip this step and leave the operating system default which is usually based on the executing uid or the parent setuid directory. -g, --group group The file group name or id applied to the created files, see chgrp(1). This option requires superuser privileges to execute to the fullest extend, otherwise the choice of group is limited on most operating systems. Default is to skip this step and leave the operating system default which is usually based on the executing gid or the parent setgid directory. -M, --migrate cmd Execute a "migration" command just before the archive file number count-1 is removed from the filesystem. The specified cmd receives the archive filename as command line argument. -P, --prolog cmd Execute a "prolog" command before the rotation step. Useful in conjunction with -s. -E, --epilog cmd Execute a "epilog" command after the rotation step. Useful in conjunction with -s. EXAMPLE
# shell script shtool rotate -n10 -s1M -zbzip2:9 -d -r /var/log/ap.access.log shtool rotate -n5 -s128K -zbzip2:9 -d -r /var/log/ap.error.log apachectl graceful HISTORY
The GNU shtool rotate command was originally written by Ralf S. Engelschall <rse@engelschall.com> in 2001 for GNU shtool. Its development was prompted by the need to have a flexible logfile rotation facility in the OpenPKG project. SEE ALSO
shtool(1), BSD newsyslog(8). 18-Jul-2008 shtool 2.0.8 SHTOOL-ROTATE.TMP(1)
All times are GMT -4. The time now is 01:58 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy