forked from UofT-DSI/shell
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathassignment.sh
More file actions
67 lines (44 loc) · 1.99 KB
/
assignment.sh
File metadata and controls
67 lines (44 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/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
mkdir 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 -p data/processed/{server_logs,user_logs,event_logs}
# 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 data/raw/server*.log data/processed/server_logs/
# 6. Repeat the above step for user logs and event logs
cp data/raw/event*.log data/processed/event_logs/
cp data/raw/user*.log data/processed/user_logs/
# 7. For user privacy, remove all files containing IP addresses (files with "ipaddr" in the filename) from ./data/raw and ./data/processed/user_logs
rm -f data/raw/*ipaddr*
rm -f data/processed/user_logs/*ipaddr*
# 8. Create a file named ./data/inventory.txt that lists all the files in the subfolders of ./data/processed
find data/processed -type f > data/inventory.txt
###########################################
echo "Project setup is complete!"