summaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
authorxyz <gky44px1999@gmail.com>2021-12-15 00:35:02 -0800
committerxyz <gky44px1999@gmail.com>2021-12-15 00:35:02 -0800
commitff17dcb6a36cab092e9cac5e175e7f5e866da244 (patch)
tree65063b9368d624ab2899c3466ead8332e9e94fec /home
parent90566791fe451bec484e292909af411a1674fea9 (diff)
dirnameall, optimize with awk
Diffstat (limited to 'home')
-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 '^\.$'