2 #keep your files organized (in place)
3 #put them into directories - name directories (subcategories)
4 #(some additional files will be created :( )
6 #-put common category files into ??comm directory (where ? is a
7 #numeric character) and create something.commident files to identify
8 #category. (touch something.commident)
10 #-put alternate group names (only the ident-file) to .tags directory
11 #by creating something.tagident files. (touch something.tagident)
16 #sh _clear_searchfs.sh
18 #find: (shell filename expansion "*cmd" "?*")
19 #sh _find_group_defs.sh -a cmd script prog
20 #sh _find_group_defs.sh -a cmd script -prog
21 #sh _find_group_defs.sh -o cmd script prog
22 #sh _find_group_defs.sh -a bash example | xargs -r grep sed
24 #-o or (group .. group)
25 #-a and (group where "true" some other group)
28 #invert search group names like -compress (only in "and" mode (-a))
29 #other option: "*" (list groups)
30 #without parameter: list all
34 find -type f
-name "list.identident" | \
35 sed 's%list.identident$%%' |
sort |
sed 's%/$%%' | \
36 while read listdir
; do
37 if [[ -z "$olistdir" ]]; then
39 find $listdir -type f \
( ! -name "*.*ident" \
)
41 if [[ ! "$listdir" =~ ^
$olistdir/.
* ]]; then
43 find $listdir -type f \
( ! -name "*.*ident" \
)
51 find -type f
-name "*.groupident" | \
52 sed -e 's%/[^/]\+$%%' -e 's%.*%&/%' |
sort -u |
sed 's%/$%%' | \
53 while read listdir0
; do
57 find $listdir0 -type f
-name "*.tagident" |
sed 's%\.tagident$%%' | \
58 while read listdir3
; do
59 echo -n "/$(basename "$listdir3")"
65 find $listdir0 -type f
-name "*.commident" |
sed 's%\.commident$%%' | \
66 while read listdir3
; do
67 echo -n "/$(basename "$listdir3")"
76 sed -e 's%^\./%@%' -e 's%/%@%g' -e 's%.*%&@%'
84 find -type f
-name "*@$i@*.groupident"
86 sed -e 's%/[^/]\+$%%' -e 's%/\.tags$%%' -e 's%.*%&/%' | \
87 sort -u |
sed 's%/$%%' | \
88 while read listdir2
; do
89 if [[ -z "$olistdir2" ]]; then
91 find $listdir2 -type f
-name "list.identident"
93 if [[ ! "$listdir2" =~ ^
$olistdir2/.
* ]]; then
95 find $listdir2 -type f
-name "list.identident"
98 done |
sed 's%/list.identident$%%' | \
99 sed 's%.*%&/%' |
sort |
sed 's%/$%%' | \
100 while read listdir
; do
101 if [[ -z "$olistdir" ]]; then
103 find $listdir -type f \
( ! -name "*.*ident" \
)
105 if [[ ! "$listdir" =~ ^
$olistdir/.
* ]]; then
107 find $listdir -type f \
( ! -name "*.*ident" \
)
121 if [[ "${i::1}" != "-" ]]; then
122 find -type f
-name "*@$i@*.groupident"
124 done |
sed -e 's%/[^/]\+$%%' -e 's%.*%&/%' |
sort -u |
sed 's%/$%%' | \
125 while read listdir0
; do
129 find $listdir0 -type f
-name "*.tagident" |
sed 's%\.tagident$%%' | \
130 while read listdir3
; do
131 echo -n "/$(basename "$listdir3")"
137 find $listdir0 -type f
-name "*.commident" |
sed 's%\.commident$%%' | \
138 while read listdir3
; do
139 echo -n "/$(basename "$listdir3")"
144 find $listdir0 -type f
-name "*.groupident" |
sed 's%/[^/]\+$%%'
147 done |
sed -e 's%^\./%@%' -e 's%/%@%g' -e 's%.*%&@%' | \
148 while read listdir1
; do
151 if [[ "${j::1}" == "-" ]]; then
154 if [[ "$listdir1" != "${listdir1/@$j@/}" ]]; then
160 [[ "$A" == "false" ]] && continue
162 [[ "${j::1}" == "-" ]] && continue
164 if [[ "$listdir1" == "${listdir1/@$j@/}" ]]; then
169 [[ "$A" == "true" ]] && echo "$listdir1"
170 done |
sed -e 's%^@%./%' -e 's%@$%%' -e 's%@%/%g' | \
171 sed -e 's%\(.*/[0-9][0-9]comm\)/.\+$%\1%' -e 's%\(.*\)/\.tags/.\+$%\1%' | \
172 sed 's%.*%&/%' |
sort -u |
sed 's%/$%%' | \
173 while read listdir2
; do
174 if [[ "$findsub" == "true" ]]; then
175 [[ -e "$listdir2/list.identident" ]] && echo "$listdir2/list.identident"
177 if [[ -z "$olistdir2" ]]; then
178 olistdir2
="$listdir2"
179 find $listdir2 -type f
-name "list.identident"
181 if [[ ! "$listdir2" =~ ^
$olistdir2/.
* ]]; then
182 olistdir2
="$listdir2"
183 find $listdir2 -type f
-name "list.identident"
187 done |
sed 's%/list.identident$%%' | \
188 sed 's%.*%&/%' |
sort |
sed 's%/$%%' | \
189 while read listdir
; do
190 if [[ "$findsub" == "true" ]]; then
191 find $listdir -maxdepth 1 -type f \
( ! -name "*.*ident" \
)
193 if [[ -z "$olistdir" ]]; then
195 find $listdir -type f \
( ! -name "*.*ident" \
)
197 if [[ ! "$listdir" =~ ^
$olistdir/.
* ]]; then
199 find $listdir -type f \
( ! -name "*.*ident" \
)
208 [[ -z "$1" ]] && lsall
&& exit 0
209 [[ "$1" == "*" ]] && lsgroups
&& exit 0
211 if [[ "$1" == "-o" ]]; then
215 if [[ "$1" == "-a" ]]; then
221 [[ -z "$1" ]] && echo "Add search params" && exit 1
229 for i
in $params_linefeed; do
230 if [[ "${i::1}" == "-" ]]; then
236 if [[ -z "$extractand" ]]; then
237 lsor
"$params_linefeed"
239 lsand
"$params_linefeed"