docs
[mirrors/Programs.git] / bash / dewey_decimal_system / dewey.sh
CommitLineData
0f2a9bdd
H
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
6ddslist='dds.txt'
7ddsdir='./dds'
8
9rm -r "$ddsdir"
10
11dds_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
22dds_get_category() {
23 cat dds.txt | grep ^"$1" | head -n "$2" | tail -n 1
24}
25
26dds_get_category_name() {
27 dds_get_category "$1" "$2" | cut -d ' ' -f 2- | grep -o '[a-zA-Z\[].*'
28}
29
30dds_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
44time for i in {000..999}; do
45 dds_add_category "$i" "$ddsdir";
46done
This page took 0.203425 seconds and 4 git commands to generate.