Solved

Script to parse the log file

Posted on 2014-09-19
4
308 Views
Last Modified: 2014-11-24
I have a text file with below contents. Need a shell or perl script that will take path to the scripts_folder as parameter

text file contents
==========================================================================

Repository: https://someserver:9443/
Workspace: (1000) "test_scripts_ws"
  Component: (1001) "some_Automated_Scripts"
    Change sets:
      (1002) ---$ john "test memory" 17-Sep-2014 02:24 PM
        Changes:
          --a-- \Libs\path\to\some\file22.txt
          --m-- \Libs\file\some\folder\locg2.lcke
          --d-- \Libs\file\in\some\folder\lock.lck
          ---c- \Libs\file\path\to\test\folder\source.mtr
          ---c- \Libs\Action1\Resource.mtr
         
      (1003) ---$ john "Test exist:"  17-Sep-2014 12
:33 PM
        Changes:
          ---c- \Libs\path\to\some\folder\cript.mts
      (1004) ---$ john "Memory Fix #2" 17-Sep-2014 12:47 PM
        Changes:
          ---c- \Libs\path\tp\some\folder\test.txt

======================================================================================

The current folder structure is
                   
                     -->test
                       -->scripts_folder
                          -->Libs
                          -->Libs2
                          -->Libs3
                          -->test1  

  test.pl C:\test\scripts_folder\

1. Delete all the files in the scripts_folder directory except the one's in the above log file starting with  --c-  --a--   --m--

2. Ignore lines starting with --d--
 
3. Do not error out if the file matching above criteria is already deleted or doesnt exist in the scripts_folder  
    directory.
0
Comment
Question by:gaurav sharma
  • 2
  • 2
4 Comments
 

Author Comment

by:gaurav sharma
ID: 40333355
For now I have :

cat required.txt | grep -e --a- -e --m-- -e ---c-
        --a-- \Libs\test1\test1\test1.txt
       --m-- \Libs\test1\test1\test11.txt
       ---c- \Libs\Libs\test2\test2\test22.txt
       ---c- \Libs\Libs\test2\test2\test2.txt
       ---c- \Libs\Libs\test3\test33.txt
0
 
LVL 84

Expert Comment

by:ozo
ID: 40333997
Is required.txt in the scripts_folder directory?
If not, how should the script find it?
If so, should it also be deleted?
0
 

Author Comment

by:gaurav sharma
ID: 40336516
@Ozo: The required.txt is in the scripts_folder directory.
            This file should not be deleted.
0
 
LVL 84

Accepted Solution

by:
ozo earned 500 total points
ID: 40348224
#!/usr/bin/perl
use strict;
use warnings;
require 5.014;
use File::Find;
my($path,%r);
die "Usage: $0 pathtothescripts_folder" unless $path=shift;
chdir $path or die "$path $!";
++$r{"/required.txt"};
open R,"<required.txt" or die "$path/required.txt $!";
while( <R> ){
    ++$r{$1=~s#[/\\]#/#gr} if /--(?:a-|m-|-c)-\s+(\S+)/;
}
close R;
find({wanted => sub{
    !-f or $r{s#(^\.)?[\\/]#/#gr} or unlink $_ or warn "$_ $!";
    },no_chdir=>1},".");
0

Featured Post

VMware Disaster Recovery and Data Protection

In this expert guide, you’ll learn about the components of a Modern Data Center. You will use cases for the value-added capabilities of Veeam®, including combining backup and replication for VMware disaster recovery and using replication for data center migration.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Convert grep lines to perl 6 40
how to run my script during boot in rhel 7 14 162
Powershell to pull all Service accounts 1 57
File and print server with Ubuntu? 7 43
I have been pestered over the years to produce and distribute regular data extracts, and often the request have explicitly requested the data be emailed as an Excel attachement; specifically Excel, as it appears: CSV files confuse (no Red or Green h…
1. Introduction As many people are interested in Linux but not as many are interested or knowledgeable (enough) to install Linux on their system, here is a safe way to try out Linux on your existing (Windows) system. The idea is that you insta…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question