PRIMARY CATEGORY β FILE MANIPULATION
MDB β File extension used by Microsoft Access in versions prior to 2007
.MDB File Manipulation
Mdb-Tools
To interact with a .MDB file in Linux β
apt install -y -- mdbtools
List MDB Shema
mdb-schema <MDB_FILE>
List MDB Tables
mdb-tables -1 <MDB_FILE>
Get MDB Table Content
mdb-export <MDB_FILE> <TABLE_NAME>
MDB to SQL
Mdb-Tools
Schema Structure
mdb-schema <MDB_FILE> mysql > <SQL_FILE>
Values to Insert
while IFS= read -r _table ; do mdb-export --insert=mysql --quote=\' --bin=octal --date-format=%F backup.mdb "$_table" ; done < <(mdb-tables -1 backup.mdb )
Script
#!/usr/bin/env bash exportToSQL () { local mdb=$1 output=${2:--} dialect=${3:-mysql} mdb-schema "$mdb" "$dialect" while IFS= read -r _table do mdb-export -I "$dialect" -q\' -boctal -D%F "$mdb" "$_table" done < <( mdb-tables -1 "$mdb" ) } [[ $output != - ]] && exec >"$output" exportToSQL "$@" || exit 99
$ bash MDBConv.bash MDB_FILE OUTPUT_FILE BACKEND(mysql, sql...)
MDB to Json
Mdb-Tools
{ while IFS= read -r _table; do mdb-json backup.mdb "$_table"; done < <( mdb-tables -1 backup.mdb ) ; } > backup.json
Extract Data from JSON
- Username and Password β USERNAME:PASSWORD
e.g. john:password123
{ jq --raw-output '"\(.username):\(.password)" | select( . != "null:null")' < <(< backup.json) | cat --language json - } > credentials.txt
{ jq --raw-output '"\(.name):\(.PASSWORD)" | select( . != "null:null")' < <(< backup.json) | cat --language json - } >> credentials.txt
- Userβs Name and Lastname
e.g. JCarter, MSmith
{ jq --raw-output '"\(.name | split("")[0])\(.lastname)"' < <(< backup.json) 2> /dev/null } > users.txt
JCarter
e.g. john.carter, mark.smith
{ jq --raw-output '"\((.name | ascii_downcase)).\((.lastname | ascii_downcase))" | select( . != "null.null")' < <(< backup.json) 2> /dev/null } > users.txt