File: //opt/bitninja-waf3/coreruleset/regex-assembly/exclude/unix-shell-fps-pl1.ra
##! Please refer to the documentation at
##! https://coreruleset.org/docs/development/regex_assembly/.
##! This list excludes command words that are prone to cause false
##! positives from the following include files:
##! - unix-shell-upto3.ra and
##! - unix-shell-4andup.ra
##! To reduce complexity, this file simply lists all possible
##! variants of a word, so when a word would be changed from, e.g.,
##! `awk@` to `awk~`, this list would not have to be updated.
##! To automatically add exclusions for English words from the sources, run the following:
##! NL=$'\n'
##! original="$(grep -vE '^[#$]' regex-assembly/exclude/unix-shell-fps-pl1.ra)"
##! upto3="$(grep -vE '^[#$]' regex-assembly/include/unix-shell-upto3.ra)"
##! rest="$(grep -vE '^[#$]' regex-assembly/include/unix-shell-4andup.ra)"
##! english_upto3="$(util/fp-finder/spell.sh -m -e regex-assembly/include/unix-shell-upto3.ra)"
##! # strip suffixes from words so that spell.sh works
##! english_rest="$(util/fp-finder/spell.sh -m -e -s '[@~]' regex-assembly/include/unix-shell-4andup.ra)"
##! result=""
##! function update_existing {
##! if [ -z "${1}" ]; then
##! return
##! fi
##! while read -r oword; do
##! found=0
##! while read -r eword; do
##! if grep -qE "^${eword}[@~]?" <<<"${oword}"; then
##! result="${result}${eword}${NL}"
##! result="${result}${eword}@${NL}"
##! result="${result}${eword}~${NL}"
##! found=1
##! break
##! fi
##! done <<<"${1}"
##! if [ ${found} -eq 0 ]; then
##! result="${result}${oword}${NL}"
##! fi
##! done <<<"${original}"
##! }
##! function add_new {
##! if [ -z "${1}" ]; then
##! return
##! fi
##! while read -r eword; do
##! if ! grep -qE "^${eword}[@~]?" <<<"${original}"; then
##! result="${result}${eword}${NL}"
##! result="${result}${eword}@${NL}"
##! result="${result}${eword}~${NL}"
##! fi
##! done <<<"${1}"
##! }
##! update_existing "${english_upto3}"
##! update_existing "${english_rest}"
##! add_new "${english_upto3}"
##! add_new "${english_rest}"
##! body_start=$(grep -n -E -m 1 '^[^#$]' regex-assembly/exclude/unix-shell-fps-pl1.ra | cut -d: -f1)
##! ed -s regex-assembly/exclude/unix-shell-fps-pl1.ra <<EOF
##! $((body_start - 1)),\$d
##! w
##! q
##! EOF
##! echo "${result}" | sort | uniq >> regex-assembly/exclude/unix-shell-fps-pl1.ra
GET
GET@
GET~
HEAD
HEAD@
HEAD~
POST
POST@
POST~
ab
ab@
ab~
adduser
agetty
alias
alias@
alias~
alpine
alpine@
alpine~
ansible-playbook
apt
apt-get
apt@
aptitude
aptitude@
aptitude~
apt~
ar
ar@
arch
arch@
arch~
aria2c
arj
arp
arp@
arp~
ar~
as
as@
ascii-xfr
ascii85
ash
ash@
ash~
aspell
as~
at
at@
atobm
at~
awk
awk@
aws
aws@
basename
basename@
basename~
bash
bash@
bash~
batch
batch@
batch~
bpftrace
breaksw
bridge
bridge@
bridge~
bundler@
busctl
byebug
c89
c99
cancel
cancel@
cancel~
capsh@
cat
cat@
cat~
cc
cc@
cc~
certbot
chattr
chdir@
check_by_ssh
check_cups
check_log
check_memory
check_raid
check_ssl_cert
check_statusfile
chflags
chmod
choom
chown
chroot
chroot@
chroot~
clang
clang@
clang~
cmp
cobc
column
column@
column~
comm
command
command@
command~
composer
composer@
composer~
compress
compress@
compress~
cowsay
cowthink
cp
cp@
cpan
cpio
cpulimit
crash
crash@
crash~
crontab
csplit
csvtool
cupsfilter
curl
curl@
curl~
cut
cut@
cut~
dash
dash@
dash~
date
date@
date~
dd
dd@
dd~
dhclient
dialog
dialog@
dialog~
dig
dig@
dig~
dir
dir@
dir~
dmidecode
dmsetup
dnf
docker
docker@
docker~
done
done@
done~
dosbox
dpkg
du
du@
dvips
easy_install
eb
eb@
eb~
echo
echo@
echo~
ed
ed@
ed~
efax
emacs
endif
endsw
env-update
eqn
es
es@
esac
es~
eval
eval@
eval~
ex
ex@
exec
exec@
exec~
exiftool
expand
expand@
expand~
expect
expect@
expect~
export
export@
export~
expr
ex~
facter
fc
fc@
fetch
fetch@
fetch~
fi
fi@
file
file@
file~
find
find@
find~
finger
finger@
finger~
fish
fish@
fish~
fi~
flock
flock@
flock~
fmt
fold
fold@
fold~
foreach
fping
ftp
ftp@
ftp~
function
function@
function~
gawk
gawk@
gawk~
gcore
gdb
gem
gem@
gem~
genie
genie@
genie~
genisoimage
getfacl@
ghc
ghci
gimp
gimp@
gimp~
ginsh
git
git@
git~
go
go@
go~
grc
group
group@
group~
gtester
hash
hash@
hash~
hd
hd@
head
head@
head~
hexdump
highlight
highlight@
highlight~
history
history@
history~
hostid
hostname
hping3
htdigest
htpasswd
iconv
id
id@
id~
ifconfig
iftop
install
install@
install~
ionice
ip
ip6tables
ip@
ipconfig
iptables
ip~
ispell
java
java@
java~
jexec
jjs
jobs
jobs@
jobs~
join
join@
join~
journalctl
jq
jrunscript
kill
kill@
killall
kill~
knife
knife@
knife~
ksshell
last
last@
last~
latex
latex@
latex~
ld
ld@
ldconfig
ldd
ldd@
less
less@
less~
links
links@
links~
ln
ln@
local
local@
local~
locate
locate@
locate~
loginctl
logname
logsave
look
look@
look~
lp
lp@
lp~
lshw
ltrace
lua
lua@
lualatex
luatex
lwp-dump
lwp-mirror
lwp-request
lynx
lynx@
lynx~
mail
mail@
mailx@
mail~
make
make@
make~
man
man@
man~
mawk
mkdir@
more
more@
more~
mosquitto
mount
mount@
mount~
msgattrib
msgcat
msgconv
msgfilter
msgmerge
msguniq
mtr
mutt
mutt@
mutt~
mv
mv@
mv~
mysql
nano@
nasm
nawk
nc
nc@
nc~
neofetch
net
net@
net~
nice
nice@
nice~
nl
nl@
nm
nm@
nmap
nm~
node
node@
node~
npm
npm@
nroff
nsenter
nslookup
null
null@
null~
octave
octave@
octave~
od
od@
od~
openssl
openvpn
openvt
opkg
pacman@
parted
parted@
parted~
passwd
paste
paste@
paste~
patch
patch@
patch~
pax
pax@
pax~
pdb
pdflatex
pdftex
perf
perlsh
perms
perms@
perms~
pf
pf@
pg
pic
pic@
pico@
pic~
pidstat
ping
ping@
ping~
pip
pip@
pip~
pkg
pkg_info
pkginfo
pr
pr@
pry
pry@
pry~
pr~
ps
ps@
psftp
psql
ps~
ptx
puppet
puppet@
puppet~
pushd
python
python@
python~
rake
rake@
rake~
raku
rar
rar@
readelf
red
red@
redcarpet@
red~
rename
rename@
rename~
repeat
repeat@
repeat~
replace
replace@
replace~
restic
rev
rev@
rev~
rlogin
rlwrap
rm
rm@
route
route@
route~
rpm
rpm@
rpmdb
rpmquery
rpmverify
rpm~
ruby
ruby@
ruby~
run-mailcap
run-parts
rview
rvim
sash
sash@
sash~
sched
sched@
sched~
screen
screen@
screen~
script
script@
script~
self
self@
self~
service
service@
service~
set
set@
setarch
setfacl@
set~
sg
sg@
sg~
shadow
shadow@
shadow~
shells
shells@
shells~
shuf
shutdown
shutdown@
shutdown~
sleep
sleep@
sleep~
slsh
smbclient
snap
snap@
snap~
soelim
sort
sort@
sort~
source
source@
source~
split
split@
split~
sqlite3
ss
ss@
ssh-keygen
ssh-keyscan
sshpass
ss~
start-stop-daemon
stdbuf
strace
strings
strings@
strings~
su
su@
systemctl
systemd-resolve
tac
tail
tail@
tail~
tar
tar@
tar~
task
task@
taskset
task~
tbl
tclsh
tcp
tcp@
tcpdump
tcp~
tee
tee@
tee~
tex
tex@
tex~
tftp
tic
tic@
tic~
time
time@
timedatectl
time~
tmux
top
top@
top~
touch
touch@
touch~
troff
tshark
ul
ul@
ulimit@
uncompress
uncompress@
uncompress~
unexpand
uniq
unlink
unlink@
unlink~
unset
unset@
unset~
unshare@
unzip
unzip@
unzip~
up2date@
update-alternatives
uudecode
uuencode
valgrind
vi
vi@
view
view@
view~
vim
vim@
vimdiff
vim~
virsh
vi~
volatility
volatility@
volatility~
w
w@
wall
wall@
wall~
watch
watch@
watch~
wc
whiptail
whiptail@
whiptail~
who
who@
whois
who~
wireshark
wish
wish@
wish~
w~
xelatex
xetex
xmodmap
xmore
xpad
xterm
xxd
yarn
yarn@
yarn~
yelp
yelp@
yelp~
yes
yes@
yes~
yum
zathura
zero
zero@
zero~
zip
zip@
zip~
zsoelim
zypper