Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions assignment.sh
Original file line number Diff line number Diff line change
@@ -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!"