Skip to content

Commit 63624e0

Browse files
authored
Merge pull request #2058 from Chessing234/fix/868-sed-extended-regex-portable
fix: use sed -E for macOS/BSD sed compatibility
2 parents 3443106 + ae02878 commit 63624e0

4 files changed

Lines changed: 9 additions & 8 deletions

File tree

mimic-iii/concepts/convert_mimiciii_concepts_bq_to_psql.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/bash
22
# This shell script converts BigQuery .sql files into PostgreSQL .sql files.
3+
# Use sed -E (POSIX ERE) so the script works on both GNU and BSD sed (macOS).
34

45
# path in which we create the postgres concepts
56
TARGET_PATH='../concepts_postgres'
@@ -72,7 +73,7 @@ do
7273
if ! [[ "$DIR_AND_TABLES_ALREADY_IN_PSQL" =~ "$d.$tbl" ]]; then
7374
echo "-- THIS SCRIPT IS AUTOMATICALLY GENERATED. DO NOT EDIT IT DIRECTLY." > "${TARGET_PATH}/${d}/${tbl}.sql"
7475
echo "DROP TABLE IF EXISTS ${tbl}; CREATE TABLE ${tbl} AS " >> "${TARGET_PATH}/${d}/${tbl}.sql"
75-
cat "${d}/${tbl}.sql" | sed -r -e "${REGEX_ARRAY}" | sed -r -e "${REGEX_HOUR_INTERVAL}" | sed -r -e "${REGEX_INT}" | sed -r -e "${REGEX_DATETIME_DIFF}" | sed -r -e "${REGEX_DATETIME_TRUNC}" | sed -r -e "${REGEX_SCHEMA}" | sed -r -e "${REGEX_INTERVAL}" >> "${TARGET_PATH}/${d}/${tbl}.sql"
76+
cat "${d}/${tbl}.sql" | sed -E -e "${REGEX_ARRAY}" | sed -E -e "${REGEX_HOUR_INTERVAL}" | sed -E -e "${REGEX_INT}" | sed -E -e "${REGEX_DATETIME_DIFF}" | sed -E -e "${REGEX_DATETIME_TRUNC}" | sed -E -e "${REGEX_SCHEMA}" | sed -E -e "${REGEX_INTERVAL}" >> "${TARGET_PATH}/${d}/${tbl}.sql"
7677
fi
7778

7879
# write out a call to this script in the make concepts file
@@ -122,7 +123,7 @@ do
122123
if ! [[ "$DIR_AND_TABLES_ALREADY_IN_PSQL" =~ "$d.$tbl" ]]; then
123124
echo "-- THIS SCRIPT IS AUTOMATICALLY GENERATED. DO NOT EDIT IT DIRECTLY." > "${TARGET_PATH}/${d}/${tbl}.sql"
124125
echo "DROP TABLE IF EXISTS ${tbl}; CREATE TABLE ${tbl} AS " >> "${TARGET_PATH}/${d}/${tbl}.sql"
125-
cat "${d}/${tbl}.sql" | sed -r -e "${REGEX_ARRAY}" | sed -r -e "${REGEX_HOUR_INTERVAL}" | sed -r -e "${REGEX_INT}" | sed -r -e "${REGEX_DATETIME_DIFF}" | sed -r -e "${REGEX_DATETIME_TRUNC}" | sed -r -e "${REGEX_SCHEMA}" | sed -r -e "${REGEX_INTERVAL}" >> "${TARGET_PATH}/${d}/${fn}"
126+
cat "${d}/${tbl}.sql" | sed -E -e "${REGEX_ARRAY}" | sed -E -e "${REGEX_HOUR_INTERVAL}" | sed -E -e "${REGEX_INT}" | sed -E -e "${REGEX_DATETIME_DIFF}" | sed -E -e "${REGEX_DATETIME_TRUNC}" | sed -E -e "${REGEX_SCHEMA}" | sed -E -e "${REGEX_INTERVAL}" >> "${TARGET_PATH}/${d}/${fn}"
126127
fi
127128

128129
# add statement to generate this table to make concepts script
@@ -150,7 +151,7 @@ do
150151
if ! [[ "$DIR_AND_TABLES_ALREADY_IN_PSQL" =~ "$d.$tbl" ]]; then
151152
echo "-- THIS SCRIPT IS AUTOMATICALLY GENERATED. DO NOT EDIT IT DIRECTLY." > "${TARGET_PATH}/${d}/${tbl}.sql"
152153
echo "DROP TABLE IF EXISTS ${tbl}; CREATE TABLE ${tbl} AS " >> "${TARGET_PATH}/${d}/${tbl}.sql"
153-
cat "${d}/${tbl}.sql" | sed -r -e "${REGEX_ARRAY}" | sed -r -e "${REGEX_HOUR_INTERVAL}" | sed -r -e "${REGEX_INT}" | sed -r -e "${REGEX_DATETIME_DIFF}" | sed -r -e "${REGEX_DATETIME_TRUNC}" | sed -r -e "${REGEX_SCHEMA}" | sed -r -e "${REGEX_INTERVAL}" >> "${TARGET_PATH}/${d}/${tbl}.sql"
154+
cat "${d}/${tbl}.sql" | sed -E -e "${REGEX_ARRAY}" | sed -E -e "${REGEX_HOUR_INTERVAL}" | sed -E -e "${REGEX_INT}" | sed -E -e "${REGEX_DATETIME_DIFF}" | sed -E -e "${REGEX_DATETIME_TRUNC}" | sed -E -e "${REGEX_SCHEMA}" | sed -E -e "${REGEX_INTERVAL}" >> "${TARGET_PATH}/${d}/${tbl}.sql"
154155
fi
155156
# write out a call to this script in the make concepts file
156157
echo "\i ${d}/${tbl}.sql" >> $TARGET_PATH/postgres-make-concepts.sql

mimic-iv-ed/buildmimic/duckdb/import_duckdb.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ fi
7474
export REGEX_TIMESTAMP='s/TIMESTAMP\([0-9]+\)/TIMESTAMP/g'
7575

7676
# use sed + above regex to create tables within db
77-
sed -r -e "${REGEX_TIMESTAMP}" ../postgres/create.sql |
77+
sed -E -e "${REGEX_TIMESTAMP}" ../postgres/create.sql |
7878
duckdb "$OUTFILE"
7979

8080
# goal: get path from find, e.g., ./1.0/icu/d_items

mimic-iv-note/buildmimic/duckdb/import_duckdb.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ MIMIC_DIR=${MIMIC_DIR%/}
7777
export REGEX_TIMESTAMP='s/TIMESTAMP\([0-9]+\)/TIMESTAMP/g'
7878

7979
# use sed + above regex to create tables within db
80-
sed -r -e "${REGEX_TIMESTAMP}" ../postgres/create.sql | \
80+
sed -E -e "${REGEX_TIMESTAMP}" ../postgres/create.sql | \
8181
duckdb "$OUTFILE"
8282

8383
# goal: get path from find, e.g., ./1.0/icu/d_items

mimic-iv/buildmimic/duckdb/import_duckdb.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ export REGEX_SPEC_TYPE='s/spec_type_desc(.+)NOT NULL/spec_type_desc\1/g'
8080
export REGEX_DRUG='s/drug +(VARCHAR.+)NOT NULL/drug \1/g'
8181

8282
# use sed + above regex to create tables within db
83-
sed -r -e "${REGEX_TIMESTAMP}" ../postgres/create.sql | \
84-
sed -r -e "${REGEX_SPEC_TYPE}" | \
85-
sed -r -e "${REGEX_DRUG}" | \
83+
sed -E -e "${REGEX_TIMESTAMP}" ../postgres/create.sql | \
84+
sed -E -e "${REGEX_SPEC_TYPE}" | \
85+
sed -E -e "${REGEX_DRUG}" | \
8686
duckdb "$OUTFILE"
8787

8888
# goal: get path from find, e.g., ./1.0/icu/d_items

0 commit comments

Comments
 (0)