From 59d8241b1a658b09a886edc069f4b1220419b677 Mon Sep 17 00:00:00 2001 From: Baruni Prabaharan <239645217+barunip@users.noreply.github.com> Date: Mon, 10 Nov 2025 15:11:52 -0500 Subject: [PATCH] Assignment 1 Baruni Prabaharan --- assignment.sh | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 assignment.sh diff --git a/assignment.sh b/assignment.sh new file mode 100644 index 000000000..39cecb933 --- /dev/null +++ b/assignment.sh @@ -0,0 +1,59 @@ +#!/bin/bash +set -x + +############################################ +# DSI CONSULTING INC. Project setup script # +############################################ +# This script creates standard analysis and output directories +# for a new project. It also creates a README file with the +# project name and a brief description of the project. +# Then it unzips the raw data provided by the client. + +if [ -d newproject ]; then + echo "Recreating the newproject directory" + rm -rf newproject +fi +mkdir newproject +cd newproject + +mkdir analysis output +touch README.md +touch analysis/main.py + +# download client data +curl -Lo rawdata.zip https://github.com/UofT-DSI/shell/raw/refs/heads/main/02_activities/assignments/rawdata.zip +unzip -q rawdata.zip + +########################################### +# Complete assignment here + +# 1. Create a directory named data +mkdir data +# 2. Move the ./rawdata directory to ./data/raw +mv ./rawdata ./data/raw +# 3. List the contents of the ./data/raw directory +ls ./data/raw +# 4. In ./data/processed, create the following directories: server_logs, user_logs, and event_logs +mkdir ./data/processed +cd ./data/processed +mkdir server_logs user_logs event_logs +cd .. +# 5. Copy all server log files (files with "server" in the name AND a .log extension) from ./data/raw to ./data/processed/server_logs +cp ./raw/*server*.log ./processed/server_logs +# 6. Repeat the above step for user logs and event logs +cp ./raw/*user*.log ./processed/user_logs +cp ./raw/*event*.log ./processed/event_logs +pwd +# 7. For user privacy, remove all files containing IP addresses (files with "ipaddr" in the filename) from ./data/raw and ./data/processed/user_logs +cd ./raw +find . -type f -name "*ipaddr*" -exec rm {} \; +cd .. +cd ./processed/user_logs +find . -type f -name "*ipaddr*" -exec rm {} \; +cd .. +pwd +# 8. Create a file named ./data/inventory.txt that lists all the files in the subfolders of ./data/processed +find . -type f >> inventory.txt +########################################### + +echo "Project setup is complete!"