website
[mirrors/Programs.git] / bash / dewey_decimal_system / dewey.sh
1 #!/bin/bash
2 #This script generates directory structure based on
3 #Dewey Decimal System Categories list copypasted from wikipedia...
4 #Generated directory structure can be converted to JSON tree for further use
5
6 ddslist='dds.txt'
7 ddsdir='./dds'
8
9 rm -r "$ddsdir"
10
11 dds_get_path() {
12 for i in {1..3}; do
13 id=$(
14 echo -n "$1" | grep -Eo "[0-9]{$i}" | head -n 1;
15 #echo 000 | grep -Eo "[0-9]{$(( 3-$i ))}" | head -n 1;
16 )
17 zeros=000
18 echo "${id}${zeros:$i}";
19 done
20 }
21
22 dds_get_category() {
23 cat dds.txt | grep ^"$1" | head -n "$2" | tail -n 1
24 }
25
26 dds_get_category_name() {
27 dds_get_category "$1" "$2" | cut -d ' ' -f 2- | grep -o '[a-zA-Z\[].*'
28 }
29
30 dds_add_category() {
31 path="$2"
32 level=1;
33 dds_get_path "$1" | while read id; do
34 name="$(dds_get_category_name "$id" "$level")";
35 path+="/$id - $name";
36 [ $level -eq 3 ] && {
37 mkdir -p "$path";
38 echo "$path";
39 }
40 level=$(( $level+1 ));
41 done
42 }
43
44 time for i in {000..999}; do
45 dds_add_category "$i" "$ddsdir";
46 done
This page took 0.253395 seconds and 4 git commands to generate.