Written by

Question Lou Pizza · Jan 15, 2020

Gzipping several files individually and renaming using datetimestamp

I currently have a batch job that performs many functions. Two of them are below. I was wondering how this can be done in a custom class 

      mv $TEMPDIR/$FILE   $TEMPDIR/$FILEa"_$DATESTAMP.txt" 
     mv $TEMPDIR/$FILE1  $TEMPDIR/$FILE1a"_$DATESTAMP.txt" 
     mv $TEMPDIR/$FILE2  $TEMPDIR/$FILE2a"_$DATESTAMP.txt" 
     mv $TEMPDIR/$FILE3  $TEMPDIR/$FILE3a"_$DATESTAMP.txt"
     mv $TEMPDIR/$FILE4  $TEMPDIR/$FILE4a"_$DATESTAMP.txt" 
    #Gzip files 
    find $TEMPDIR -type f ! -iname '*gz' -exec gzip '{}' \; 

Thank you

Comments

Vitaliy Serdtsev · Jan 16, 2020

Example with one file for Windows:

<FONT COLOR="#000080">Class dc.test </FONT><FONT COLOR="#000000">[ </FONT><FONT COLOR="#000080">Abstract </FONT><FONT COLOR="#000000">]
{

</FONT><FONT COLOR="#000080">/// d ##class(dc.test).test() ClassMethod </FONT><FONT COLOR="#000000">test() {   </FONT><FONT COLOR="#0000ff">s </FONT><FONT COLOR="#800000">ts</FONT><FONT COLOR="#000000">=</FONT><FONT COLOR="#000080">##class</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#008080">%PosixTime</FONT><FONT COLOR="#000000">).</FONT><FONT COLOR="#0000ff">LogicalToUnixTime</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#000080">##class</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#008080">%PosixTime</FONT><FONT COLOR="#000000">).</FONT><FONT COLOR="#0000ff">CurrentUTCTimeStamp</FONT><FONT COLOR="#000000">()),     </FONT><FONT COLOR="#800000">oldName</FONT><FONT COLOR="#000000">=</FONT><FONT COLOR="#008000">"C:\Tmp\test"</FONT><FONT COLOR="#000000">,     </FONT><FONT COLOR="#800000">newName</FONT><FONT COLOR="#000000">=</FONT><FONT COLOR="#800000">oldName</FONT><FONT COLOR="#000000">_</FONT><FONT COLOR="#0000ff">$$$FormatText</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#008000">"a%1.txt"</FONT><FONT COLOR="#000000">,</FONT><FONT COLOR="#800000">ts</FONT><FONT COLOR="#000000">)      </FONT><FONT COLOR="#0000ff">s </FONT><FONT COLOR="#800000">f</FONT><FONT COLOR="#000000">=</FONT><FONT COLOR="#000080">##class</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#008080">%Stream.FileBinary</FONT><FONT COLOR="#000000">).</FONT><FONT COLOR="#0000ff">%New</FONT><FONT COLOR="#000000">()   </FONT><FONT COLOR="#0000ff">d </FONT><FONT COLOR="#800000">f</FONT><FONT COLOR="#000000">.</FONT><FONT COLOR="#0000ff">LinkToFile</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#800000">oldName</FONT><FONT COLOR="#000000">)      </FONT><FONT COLOR="#0000ff">s </FONT><FONT COLOR="#800000">gz</FONT><FONT COLOR="#000000">=</FONT><FONT COLOR="#000080">##class</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#008080">%Stream.FileBinaryGzip</FONT><FONT COLOR="#000000">).</FONT><FONT COLOR="#0000ff">%New</FONT><FONT COLOR="#000000">()   </FONT><FONT COLOR="#0000ff">s </FONT><FONT COLOR="#800000">gz</FONT><FONT COLOR="#000000">.</FONT><FONT COLOR="#0000ff">Filename</FONT><FONT COLOR="#000000">=</FONT><FONT COLOR="#800000">newName   </FONT><FONT COLOR="#0000ff">d </FONT><FONT COLOR="#800000">gz</FONT><FONT COLOR="#000000">.</FONT><FONT COLOR="#0000ff">CopyFromAndSave</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#800000">f</FONT><FONT COLOR="#000000">)

  </FONT><FONT COLOR="#0000ff">d </FONT><FONT COLOR="#000080">##class</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#008080">%File</FONT><FONT COLOR="#000000">).</FONT><FONT COLOR="#0000ff">Delete</FONT><FONT COLOR="#000000">(</FONT><FONT COLOR="#800000">oldName</FONT><FONT COLOR="#000000">) }

}</FONT>

0
Lou Pizza  Jan 16, 2020 to Vitaliy Serdtsev

Hi,

Thanks so much for the quick response. We are actually on Suse Linux and there are multiple(5) files.

Thank you

Lou

0