Sponsored Content
Top Forums Shell Programming and Scripting Is better way copy list of multiple files, rename and gzip Post 302933622 by dotran on Saturday 31st of January 2015 07:20:09 PM
Old 01-31-2015
Is better way copy list of multiple files, rename and gzip

Is better way to write the script loop through one by one "Old_File_1: & New_File_1:" to copy 100 files to /staging/test folder then re-name & gzip all those files? I wrote this code below and don't like that much. Thanks
I have a control_file under /tmp/test folder like below 100 files and {DATE_FILE} = YYYYMMDD

Code:
/tmp/test: cat control_file
Old_File_1: AB_P_Cdf_{DATE_FILE}.txt 
Old_File-2: DD_P_DAdf_{DATE_FILE}.txt
Old_File-3: dsf_P_DEMO_{DATE_FILE}.txt
Old_File-4: sdfd_P_Pd_{DATE_FILE}.txt
bla bla until Old_File-100
 
New_File_1: test1_sd_WW_{DATE_FILE}.txt
New_File_2: test2vd_WW_new_{DATE_FILE}.txt
New_File_3: test3cfd_dfP_dff_{DATE_FILE}.txt
New_File_4: test4gdd_WW_P_OdfsDUCT_{DATE_FILE}.txt
bla bla until New_File-100

Code:
 
#!/bin/ksh
DATE="$1"
Old_File=`cat /tmp/test/controlfile | grep Old_File | awk '{print $2}' | sed "s/{DATE_FILE}/${DATE}/g"`
#Old_File=`cat /tmp/test/controlfile | grep Old_File | awk '{print $2}' | sed "s/{DATE_FILE}/${1}/"`
New_File=`cat /tmp/test/controlfile | grep New_File | awk '{print $2}' | sed "s/{DATE_FILE}/${DATE}/g"`
#New_File=`cat /tmp/test/controlfile | grep New_File | awk '{print $2}' | sed "s/{DATE_FILE}/${1}/"`
 
###################################
# Copy file to /staging/test folder
###################################
cd /tmp/test
#Old_File=`cat /tmp/test/controlfile | grep Old_File | awk '{print $2}' | sed "s/{DATE_FILE}/${DATE}/g`
for i in $Old_File;
do
cp $i /staging/test;
done
 
###################################
# Rename all Old File to New File
###################################
cd /staging/test
cat /tmp/test/controlfile | grep Old_File | awk '{print $2}' | sed "s/{DATE_FILE}/${DATE}/g" > /staging/test/file1.txt
cat /tmp/test/controlfile | grep New_File | awk '{print $2}' | sed "s/{DATE_FILE}/${DATE}/g" > /staging/test/file2.txt
 
paste -d" " file1.txt file2.txt > file3.txt
sed 's/^/mv /' file3.txt > file4.txt
chmod 775 file4.txt
./file4.txt
rm -f file*.txt
###################################
# Gzip all New File
###################################
for i in $New_File;
do
gzip $i
done


Last edited by dotran; 01-31-2015 at 11:57 PM.. Reason: Add CODE and ICODE tags and change QUOTE tags to CODE tags.
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

gzip, multiple files

Hello Everyone, Here is what I am trying to do. I have four text files, I want to gzip them under unix and mail the zipped file via outlook. I am able to do this easily enough, but using winzip or pkunzip to unzip the file, there is only one file. (In essence, all four files were... (2 Replies)
Discussion started by: smbodnar
2 Replies

2. UNIX for Dummies Questions & Answers

copy and rename list of files

Hi all, I am a newbie in writng unix..I am using ksh shell..Does anyone know how to copy a list o files from directory A to directory B with differnt names? i.e in Dir A, I have RPT101.555.TXT RPT102.666.TXT and I want to copy those files to dir B with new naming convention.. in Dir B,... (7 Replies)
Discussion started by: kinmak
7 Replies

3. UNIX for Dummies Questions & Answers

script to rename files with current date and copy it.

I have few webservers logs like access.log. which would be growing everyday. what i do everyday is, take the backup of access.log as access.log_(currentdate) and nullify the access.log. So thought of writing a script... but stuck up in middle. My requirement: to take the backup and nullify... (6 Replies)
Discussion started by: logic0
6 Replies

4. Shell Programming and Scripting

Copy files from folder and rename them

hello, I need to build a shell script that receives the folder to copy by parameter and copy all files except thumb.db to another folder and rename them like, file.jpg renamed to file_bb1.jpg. can someone help me Thanks (4 Replies)
Discussion started by: zeker
4 Replies

5. Shell Programming and Scripting

Files rename and copy

hello, I am write a Script and i would listing all Files from Path1 out with DSR*.txt and give a new name an copy to the Path2. I have problems with that to rename. Someone can help me? Sorry, for my english. My english is not gut. I hope you understand my. That is my Script. ... (2 Replies)
Discussion started by: efeijoo
2 Replies

6. Shell Programming and Scripting

Help with script to copy/rename files, then delete by date

Hi All, I am new to scripting and am looking for some assistance setting up a script. Basically I need the script to scan a folder for the newest files and make a copy of those files, adding a month to the date stamp. I also need this script to delete the previously copied files to save space.... (4 Replies)
Discussion started by: Lucid13
4 Replies

7. Shell Programming and Scripting

Linux Script to copy and rename files through SQL statement

Hi, I require help to complete below requirement through Linux Script. I have a SQL query which shows two columns as output. One is Report Name and other is report path. Query return multiple rows. below is the output. Report Name Cotton Stock Report (Net Weight)- Customized Output... (3 Replies)
Discussion started by: usman_oracle
3 Replies

8. Shell Programming and Scripting

Oop to copy and rename files through SQL Statement in shell Script

#!/bin/sh sqlplus -s "/ as sysdba" << EOF SET HEADING OFF SET FEEDBACK OFF Select pt.user_concurrent_program_name , OUTFILE_NAME FROm apps.fnd_concurrent_programs_tl pt, apps.fnd_concurrent_requests f where pt.concurrent_program_id = f.concurrent_program_id and pt.application_id =... (1 Reply)
Discussion started by: usman_oracle
1 Replies

9. UNIX for Beginners Questions & Answers

Compress multiple gzip files

Good afternoon friends. I wanted to make a query, how to compress several files and leave them all in 1, for example flat text files: filename_1.csv filename_2.csv filename_3.csv expected result filename_end.gzip = (filename_1.csv filename_2.csv filename_3.csv) please (2 Replies)
Discussion started by: tricampeon81
2 Replies
UNBUFFER(1)						      General Commands Manual						       UNBUFFER(1)

NAME
unbuffer - unbuffer output SYNOPSIS
unbuffer program [ args ] INTRODUCTION
unbuffer disables the output buffering that occurs when program output is redirected from non-interactive programs. For example, suppose you are watching the output from a fifo by running it through od and then more. od -c /tmp/fifo | more You will not see anything until a full page of output has been produced. You can disable this automatic buffering as follows: unbuffer od -c /tmp/fifo | more Normally, unbuffer does not read from stdin. This simplifies use of unbuffer in some situations. To use unbuffer in a pipeline, use the -p flag. Example: process1 | unbuffer -p process2 | process3 CAVEATS
unbuffer -p may appear to work incorrectly if a process feeding input to unbuffer exits. Consider: process1 | unbuffer -p process2 | process3 If process1 exits, process2 may not yet have finished. It is impossible for unbuffer to know long to wait for process2 and process2 may not ever finish, for example, if it is a filter. For expediency, unbuffer simply exits when it encounters an EOF from either its input or process2. In order to have a version of unbuffer that worked in all situations, an oracle would be necessary. If you want an application-specific solution, workarounds or hand-coded Expect may be more suitable. For example, the following example shows how to allow grep to finish pro- cessing when the cat before it finishes first. Using cat to feed grep would never require unbuffer in real life. It is merely a place- holder for some imaginary process that may or may not finish. Similarly, the final cat at the end of the pipeline is also a placeholder for another process. $ cat /tmp/abcdef.log | grep abc | cat abcdef xxxabc defxxx $ cat /tmp/abcdef.log | unbuffer grep abc | cat $ (cat /tmp/abcdef.log ; sleep 1) | unbuffer grep abc | cat abcdef xxxabc defxxx $ BUGS
The man page is longer than the program. SEE ALSO
"Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Programs" by Don Libes, O'Reilly and Associates, January 1995. AUTHOR
Don Libes, National Institute of Standards and Technology 1 June 1994 UNBUFFER(1)
All times are GMT -4. The time now is 05:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy