summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xhome/xyz/.local/bin/dirnameall12
1 files changed, 5 insertions, 7 deletions
diff --git a/home/xyz/.local/bin/dirnameall b/home/xyz/.local/bin/dirnameall
index 6bd67fd3..d2d78a5b 100755
--- a/home/xyz/.local/bin/dirnameall
+++ b/home/xyz/.local/bin/dirnameall
@@ -8,14 +8,12 @@ $line"
paths="$line"
fi
done
-dirs="$(echo "$paths" | tr '\n' '\0' | xargs -0 dirname | sort | uniq)"
-paths="$paths
-$dirs"
-while [ "$(echo "$dirs" | wc -l)" -ne 1 ]; do
- dirs="$(echo "$dirs" | tr '\n' '\0' | xargs -0 dirname | sort | uniq)"
- paths="$paths
+dirs="$paths"
+while [ "$dirs" != '.' ]; do
+ [ -n "$dirs" ] && paths="$paths
$dirs"
+ dirs="$(echo "$dirs" | tr '\n' '\0' | xargs -0 dirname | awk '!a[$0]++')"
done
-echo "$paths" | sort | uniq | grep -v '^\.$'
+echo "$paths" | awk '!a[$0]++' | grep -v '^\.$'