From ff17dcb6a36cab092e9cac5e175e7f5e866da244 Mon Sep 17 00:00:00 2001 From: xyz Date: Wed, 15 Dec 2021 00:35:02 -0800 Subject: dirnameall, optimize with awk --- home/xyz/.local/bin/dirnameall | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'home/xyz/.local/bin/dirnameall') 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 '^\.$' -- cgit v1.2.3-70-g09d2