44##! This list was generated from the original lists with the following command:
55##! awk '/^([a-z0-9_-]+)/ { x = $0; gsub(/[@~]/, "", x); if (length(x) > 3) print }' 93210{0,5}.data
66
7+ ##! Note that the suffixes must be added manually to new entries.
8+ ##! To regenerate this list from unix-shell.data, run the following:
9+ ##! NL=$'\n'
10+ ##! original="$(grep -vE '^[#$]' regex-assembly/include/unix-shell-4andup-with-params.ra)"
11+ ##! source="$(awk '/^[^#$]/ {split($0,x,"/"); y=x[length(x)]} length(y) > 3 {print y}' \
12+ ##! rules/unix-shell.data | \
13+ ##! sort | uniq)"
14+ ##! result=""
15+ ##! # retain all unmodified entries in this list and skip removed ones; ignore the manually added suffixes
16+ ##! while read -r oword; do
17+ ##! while read -r sword; do
18+ ##! # strip suffixes from end of words
19+ ##! oword_raw="${oword/%\{\{space-or-redirect\}\}/}"
20+ ##! oword_raw="${oword_raw/%\{\{no-space\}\}/}"
21+ ##! if [ "${oword_raw}" = "${sword}" ]; then
22+ ##! result="${result}${oword}${NL}"
23+ ##! break
24+ ##! fi
25+ ##! done <<<"${source}"
26+ ##! done <<<"${original}"
27+
28+ ##! # add new entries to this list
29+ ##! while read -r sword; do
30+ ##! found=0
31+ ##! while read -r oword; do
32+ ##! # strip suffixes from end of words
33+ ##! oword_raw="${oword/%\{\{space-or-redirect\}\}/}"
34+ ##! oword_raw="${oword_raw/%\{\{no-space\}\}/}"
35+ ##! if [ "${oword_raw}" = "${sword}" ]; then
36+ ##! found=1
37+ ##! break
38+ ##! fi
39+ ##! done <<<"${original}"
40+ ##! if [ ${found} -eq 0 ]; then
41+ ##! result="${result}${sword}${NL}"
42+ ##! fi
43+ ##! done <<<"${source}"
44+
745##! # check entries for English words and suffix those
8- ##! original="$(grep -vE '^(?:#|$)' regex-assembly/include/unix-shell-4andup-with-params.ra) "
9- ##! english="$(util/fp-finder/spell.sh -m -e regex-assembly/include/unix-shell-4andup-with-params.ra )"
46+ ##! original="${result} "
47+ ##! english="$(util/fp-finder/spell.sh -m -e - <<<"${result}" )"
1048##! result=""
1149##! while read -r oword; do
1250##! found=0
1351##! while read -r eword; do
14- ##! if [ "${oword}" = "${eword}" ]; then
15- ##! result="${result}${oword}{{space-or-redirect}}\n "
52+ ##! if [ "${oword}" = "${eword}" ] && [ -n "${oword}" ] ; then
53+ ##! result="${result}${oword}{{space-or-redirect}}${NL} "
1654##! found=1
1755##! break
1856##! fi
19- ##! done <<<${english}
57+ ##! done <<<" ${english}"
2058##! if [ ${found} -eq 0 ]; then
21- ##! result="${result}${oword}\n "
59+ ##! result="${result}${oword}${NL} "
2260##! fi
23- ##! done <<<${original}
61+ ##! done <<<" ${original}"
2462
2563##! body_start=$(grep -n -E -m 1 '^[^#$]' regex-assembly/include/unix-shell-4andup-with-params.ra | cut -d: -f1)
2664##! ed -s regex-assembly/include/unix-shell-4andup-with-params.ra <<EOF
2765##! $((body_start - 1)),\$d
2866##! w
2967##! q
3068##! EOF
31- ##! echo ${result} | sort | uniq >> regex-assembly/include/unix-shell-4andup-with-params.ra
69+ ##! echo " ${result}" | sort | uniq >> regex-assembly/include/unix-shell-4andup-with-params.ra
3270
3371##! The two `shell` entries match `$SHELL` and `${SHELL}`.
3472
3977
4078HEAD{{space-or-redirect}}
4179POST{{space-or-redirect}}
80+ addgroup
4281adduser
4382agetty
4483alias{{space-or-redirect}}
@@ -52,11 +91,14 @@ ascii-xfr
5291ascii85
5392aspell
5493atobm
94+ axel
5595base32
5696base64
97+ basename{{space-or-redirect}}
5798basenc
5899bash{{space-or-redirect}}
59100batch{{space-or-redirect}}
101+ blkid
60102bpftrace
61103breaksw
62104bridge{{space-or-redirect}}
@@ -69,6 +111,7 @@ bunzip2
69111busctl
70112busybox
71113byebug
114+ byobu
72115bzcat
73116bzcmp
74117bzdiff
77120bzfgrep
78121bzgrep
79122bzip2
123+ bzip2recover
80124bzless
81125bzmore
82126cancel{{space-or-redirect}}
@@ -92,10 +136,16 @@ check_raid
92136check_ssl_cert
93137check_statusfile
94138chflags
139+ chgpasswd
140+ chgrp
95141chmod
96142choom
97143chown
144+ chpass
98145chroot{{space-or-redirect}}
146+ chsh
147+ clang++
148+ clang{{space-or-redirect}}
99149cobc
100150column{{space-or-redirect}}
101151comm
109159cpio
110160cpulimit
111161crash{{space-or-redirect}}
162+ cron
112163crontab
113164csplit
114165csvtool
@@ -128,6 +179,7 @@ done{{space-or-redirect}}
128179dosbox
129180dpkg
130181dvips
182+ e2fsck
131183easy_install
132184echo{{space-or-redirect}}
133185efax
@@ -168,11 +220,14 @@ ghci
168220gimp{{space-or-redirect}}
169221ginsh
170222grep{{space-or-redirect}}
223+ groupmod
224+ group{{space-or-redirect}}
171225gtester
172226gunzip
173227gzcat
174228gzexe
175229gzip
230+ hash{{space-or-redirect}}
176231head{{space-or-redirect}}
177232hexdump
178233highlight{{space-or-redirect}}
@@ -181,6 +236,7 @@ hostid
181236hostname
182237hping3
183238htdigest
239+ htop
184240htpasswd
185241iconv
186242ifconfig
@@ -220,6 +276,7 @@ loginctl
220276logname
221277logsave
222278look{{space-or-redirect}}
279+ losetup
223280ls-F
224281lsb_release
225282lscpu
@@ -236,6 +293,8 @@ lwp-dump
236293lwp-mirror
237294lwp-request
238295lynx{{space-or-redirect}}
296+ lz4c
297+ lz4cat
239298lzcat
240299lzcmp
241300lzdiff
@@ -244,13 +303,19 @@ lzfgrep
244303lzgrep
245304lzless
246305lzma
306+ lzmadec
307+ lzmainfo
247308lzmore
248309mailq
249310mailx{{space-or-redirect}}
250311mail{{space-or-redirect}}
251312make{{space-or-redirect}}
313+ master.passwd
252314mawk
253315mkdir{{space-or-redirect}}
316+ mkfifo
317+ mknod
318+ mktemp
254319mlocate
255320more{{space-or-redirect}}
256321mosquitto
@@ -271,12 +336,13 @@ mysqlshow
271336nano{{space-or-redirect}}
272337nasm
273338nawk
274- nc\ .openbsd
275- nc\ .traditional
339+ nc.openbsd
340+ nc.traditional
276341ncat
277342neofetch
278343netcat
279344netkit-ftp
345+ netplan
280346netstat
281347nice{{space-or-redirect}}
282348nmap
@@ -287,25 +353,31 @@ nroff
287353nsenter
288354nslookup
289355nstat
356+ null{{space-or-redirect}}
290357octave{{space-or-redirect}}
291358onintr
292359openssl
293360openvpn
294361openvt
295362opkg
296363pacman{{space-or-redirect}}
364+ parted{{space-or-redirect}}
297365passwd
298366paste{{space-or-redirect}}
299367patch{{space-or-redirect}}
300368pdflatex
301369pdftex
370+ pdksh
302371perf
303372perl
304373perl5
305374perlsh
306375perms{{space-or-redirect}}
307376pftp
308377pgrep
378+ php-cgi
379+ php5
380+ php7
309381pico{{space-or-redirect}}
310382pidstat
311383pigz
@@ -317,16 +389,21 @@ pkill
317389popd
318390printenv
319391printf{{space-or-redirect}}
392+ psed
320393psftp
321394psql
322395ptar
323396ptardiff
324397ptargrep
325398puppet{{space-or-redirect}}
326399pushd
400+ pwd.db
401+ python2
402+ python3
327403python{{no-space}}
328404rake{{space-or-redirect}}
329405raku
406+ rbash
330407readelf
331408realpath
332409redcarpet{{space-or-redirect}}
@@ -354,16 +431,17 @@ sched
354431screen{{space-or-redirect}}
355432script{{space-or-redirect}}
356433sdiff
434+ self{{space-or-redirect}}
357435sendmail
358436service{{space-or-redirect}}
359437setarch
360438setenv
361439setfacl{{space-or-redirect}}
362440setsid
363441sftp
364- sh\ .distrib
365- shell {{space-or-redirect}}
366- shell }
442+ sh.distrib
443+ shadow {{space-or-redirect}}
444+ shells{{space-or-redirect} }
367445shuf
368446shutdown{{space-or-redirect}}
369447sleep{{space-or-redirect}}
@@ -375,12 +453,16 @@ soelim
375453sort{{space-or-redirect}}
376454source{{space-or-redirect}}
377455split{{space-or-redirect}}
456+ spwd.db
378457sqlite3
379458ssh-keygen
380459ssh-keyscan
381460sshpass
382461start-stop-daemon
383462stdbuf
463+ stderr
464+ stdin
465+ stdout
384466strace
385467strings{{space-or-redirect}}
386468sudo
@@ -467,12 +549,25 @@ zcat
467549zcmp
468550zdiff
469551zegrep
552+ zero{{space-or-redirect}}
470553zfgrep
471554zgrep
555+ zipcloak
556+ zipcmp
472557zipdetails
558+ zipgrep
559+ zipinfo
560+ zipmerge
561+ zipnote
562+ zipsplit
563+ ziptool
473564zless
474565zmore
475566zrun
476567zsoelim
477568zstd
569+ zstdcat
570+ zstdgrep
571+ zstdless
572+ zstdmt
478573zypper
0 commit comments