Problem
scripts/check-dups.sh word-splits section headings on whitespace, so multi-word sections like ### General Search Engines are never checked as intact units and cross-section duplicates can escape CI.
Steps
mkdir t && cd t
- Create
README.md:
### Alpha Beta
- [foo](https://a.example)
### Gamma Delta
- [foo](https://a.example)
- Copy
scripts/check-dups.sh beside it and run: bash check-dups.sh
Expected
Exit 1 with [ ERR ] DUPLICATE LINKS FOUND — same URL appears in two sections.
Actual
[ OK! ] NO DUPLICATES FOUND. (exit 0)
Root cause at scripts/check-dups.sh:33: for section in $sections; word-splits, so check_section runs with Alpha, Beta, Gamma, Delta — awk pattern /^### Alpha/ matches only ### Alpha Beta; /^### Beta/ matches nothing. Cross-section duplicate hides. Fix: while IFS= read -r section; do ... done <<< "$sections".
Environment
Ubuntu 22.04 (workflow runs-on: ubuntu-latest per .github/workflows/check-duplicates.yml:12), GNU bash 5.x, GNU awk.
Thanks for maintaining edoardottt/awesome-hacker-search-engines!
Problem
scripts/check-dups.shword-splits section headings on whitespace, so multi-word sections like### General Search Enginesare never checked as intact units and cross-section duplicates can escape CI.Steps
mkdir t && cd tREADME.md:scripts/check-dups.shbeside it and run:bash check-dups.shExpected
Exit 1 with
[ ERR ] DUPLICATE LINKS FOUND— same URL appears in two sections.Actual
[ OK! ] NO DUPLICATES FOUND.(exit 0)Root cause at
scripts/check-dups.sh:33:for section in $sections;word-splits, socheck_sectionruns withAlpha,Beta,Gamma,Delta— awk pattern/^### Alpha/matches only### Alpha Beta;/^### Beta/matches nothing. Cross-section duplicate hides. Fix:while IFS= read -r section; do ... done <<< "$sections".Environment
Ubuntu 22.04 (workflow
runs-on: ubuntu-latestper.github/workflows/check-duplicates.yml:12), GNU bash 5.x, GNU awk.Thanks for maintaining edoardottt/awesome-hacker-search-engines!