#Modified code #!/bin/sh
Modified code
#!/bin/sh
# user-modifiable parameters
FILE_HEADING='## File: %s\n\n'
DEFAULT_IGNORED_DIRS='build .git'
DEFAULT_EXTENSIONS='c cc cpp h hpp'
# end of user variables; code starts here
set -eu # Usual safety
set -f # Don't expand pathnames when expanding $NAME_RULES below
for dir in ${IGNORED_DIRS-$DEFAULT_IGNORED_DIRS}; do
PRUNE_RULES="${PRUNE_RULES-} -name ${dir} -prune -o"
done
for ext in ${EXTENSIONS-$DEFAULT_EXTENSIONS}; do
NAME_RULES="${NAME_RULES:--false} -o -name *.${ext}"
done
# We intend word splitting of rules variables
# shellcheck disable=SC2086
exec find -L . ${PRUNE_RULES-} ${NAME_RULES:+'(' $NAME_RULES ')'} -type f \
-exec printf "${FILE_HEADING}" {} \; \
-exec sed 's/^/ /' {} \;
#Modified one-liner find . -name *.sh -exec printf '## File: %s\n\n' {} ; -exec sed 's/^/ /' {} ;
Modified one-liner
find . -name \*.sh -exec printf '## File: %s\n\n' {} \; -exec sed 's/^/ /' {} \;