summaryrefslogtreecommitdiffstats
path: root/analyze_path.sh
diff options
context:
space:
mode:
Diffstat (limited to 'analyze_path.sh')
-rwxr-xr-xanalyze_path.sh63
1 files changed, 63 insertions, 0 deletions
diff --git a/analyze_path.sh b/analyze_path.sh
new file mode 100755
index 0000000..e39ffc0
--- /dev/null
+++ b/analyze_path.sh
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+analyze_path() {
+ # extract `obs id' and `source name' from path
+ echo "$@" | awk '
+ # main part
+ {
+ if (NF==1) {
+ ## oi & name
+ input=($1 "/")
+ if (input ~ /_oi/) {
+ ## PATTERN: .../$name_oi$oi/...
+ idx_oi = match(input, /oi[0-9]+/) + 2; # "2" skip the "oi"
+ len_oi = RLENGTH - 2;
+ oi = substr(input, idx_oi, len_oi);
+ idx_name = match(input, /\/[a-zA-Z0-9.+-]+_oi/) + 1;
+ len_name = RLENGTH - 4;
+ name = substr(input, idx_name, len_name);
+ owner = "lwt";
+ }
+ else {
+ ## PATTERN: .../$name/$oi/...
+ idx_oi = match(input, /\/[0-9]+\//) + 1;
+ len_oi = RLENGTH - 2;
+ oi = substr(input, idx_oi, len_oi);
+ idx_name1 = match(input, /\/[a-zA-Z0-9_.+-]+\/[0-9]+\//);
+ len_name1 = RLENGTH;
+ name1 = substr(input, idx_name1, len_name1);
+ idx_name = match(name1, /\/[a-zA-Z0-9_.+-]+\//) + 1;
+ len_name = RLENGTH - 2;
+ name = substr(name1, idx_name, len_name);
+ owner = "zzh";
+ }
+ ## output
+ printf("input: %s\n", input)
+ printf("oi: %s\nname: %s\nowner: %s\n", oi, name, owner)
+ }
+ else {
+ printf("*** WARNING: invalid input: %s\n", $0)
+ }
+ }
+ # END { }
+ '
+}
+
+
+case "$1" in
+ -[hH]*)
+ echo "Usage:"
+ echo " `basename $0` <path1> ..."
+ exit 1
+ ;;
+esac
+
+echo "NAME,OI,PATH"
+while [ ! -z "$1" ]; do
+ path="$1"
+ shift
+ name=`analyze_path "${path}" | grep '^name:' | awk '{ print $2 }'`
+ oi=`analyze_path "${path}" | grep '^oi:' | awk '{ print $2 }'`
+ echo "${name},${oi},${path}"
+done
+