diff --git a/HLTrigger/Configuration/test/BuildFile.xml b/HLTrigger/Configuration/test/BuildFile.xml
index e106df22c9b7d..776f01c7ef6de 100644
--- a/HLTrigger/Configuration/test/BuildFile.xml
+++ b/HLTrigger/Configuration/test/BuildFile.xml
@@ -14,3 +14,6 @@
+
+
+
diff --git a/HLTrigger/Configuration/test/test_OnlineVsDevTablesConsistency.sh b/HLTrigger/Configuration/test/test_OnlineVsDevTablesConsistency.sh
new file mode 100755
index 0000000000000..ec10cbfdf10db
--- /dev/null
+++ b/HLTrigger/Configuration/test/test_OnlineVsDevTablesConsistency.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+function die { echo $1: status $2 ; exit $2; }
+
+function compare_files() {
+ local file1_path="$1"
+ local file2_path="$2"
+ local exclude_set=("HLTAnalyzerEndpath" "RatesMonitoring" "DQMHistograms")
+
+ local lines_file1=()
+ local lines_file2=()
+ local not_in_file2=()
+
+ # extract the list of paths to match from the first file
+ while IFS= read -r line; do
+ if [[ ! $line =~ ^# ]]; then
+ # Extract the first word before a space
+ first_word=$(echo "$line" | awk '{print $1}')
+ lines_file1+=("$first_word")
+ fi
+ done < "$file1_path"
+
+ # extract the list of paths to match from the second file
+ while IFS= read -r line; do
+ if [[ ! $line =~ ^# ]]; then
+ # Extract the first word before a space
+ first_word=$(echo "$line" | awk '{print $1}')
+ lines_file2+=("$first_word")
+ fi
+ done < "$file2_path"
+
+ # find the set not in common
+ for line in "${lines_file1[@]}"; do
+ if [[ ! "${lines_file2[@]}" =~ "$line" ]]; then
+ not_in_file2+=("$line")
+ fi
+ done
+
+ # Remove lines from not_in_file2 that contain any substring in exclude_set
+ for pattern in "${exclude_set[@]}"; do
+ not_in_file2=("${not_in_file2[@]//*$pattern*}")
+ done
+
+ # Remove empty elements and empty lines after substitution
+ not_in_file2=("${not_in_file2[@]//''}")
+
+ # Remove empty elements from the array
+ local cleaned_not_in_file2=()
+ for element in "${not_in_file2[@]}"; do
+ if [[ -n "$element" ]]; then
+ cleaned_not_in_file2+=("$element")
+ fi
+ done
+
+ file1_name=$(basename "$file1_path")
+ file2_name=$(basename "$file2_path")
+
+ if [ ${#cleaned_not_in_file2[@]} -eq 0 ]; then
+ echo "All lines from $file1_name are included in $file2_name."
+ return 0
+ else
+ echo "Lines present in $file1_name but not in $file2_name (excluding the exclusion set):"
+ printf '%s\n' "${not_in_file2[@]}"
+ return 1
+ fi
+}
+
+TABLES_AREA="$CMSSW_BASE/src/HLTrigger/Configuration/tables"
+
+compare_files $TABLES_AREA/online_pion.txt $TABLES_AREA/PIon.txt || die "Failure comparing online_pion and PIon" $?
+compare_files $TABLES_AREA/online_hion.txt $TABLES_AREA/HIon.txt || die "Failure comparing online_hion and HIon" $?
+compare_files $TABLES_AREA/online_pref.txt $TABLES_AREA/PRef.txt || die "Failure comparing online_pref and PRef" $?
+compare_files $TABLES_AREA/online_cosmics.txt $TABLES_AREA/Special.txt || die "Failure comparing online_cosmics and Special" $?
+compare_files $TABLES_AREA/online_special.txt $TABLES_AREA/Special.txt || die "Failure comparing online_special and Special" $?
+compare_files $TABLES_AREA/online_grun.txt $TABLES_AREA/GRun.txt || die "Failure comparing online_grun and GRun" $?