-
Notifications
You must be signed in to change notification settings - Fork 88
Python Regular Expressions
When matching, Gam uses the match function which always looks for a match at the beginning of a string.
- "^Foo Bar$" - match the entire string "Foo Bar"
- "Foo Bar" - match a string that starts with "Foo Bar"
- ".*Foo Bar" - match a string that contains "Foo Bar"
- ".*Foo Bar$" - match a string that ends with "Foo Bar"
Select Aliases to display
gam print aliases [todrive <ToDriveAttribute>*]
[aliasmatchpattern <RegularExpression>]
Collections
matchfield|skipfield <FieldName> <RegularExpression>
keypattern <RegularExpression>
Display Classroom courses based on owner's email address
gam print courses [todrive <ToDriveAttribute>*]
[owneremailmatchpattern <RegularExpression>]
Clear Contacts based on email address
gam <UserTypeEntity> clear contacts
emailmatchpattern <RegularExpression>
emailclearpattern <RegularExpression>
Display Contacts based on email address
gam <UserTypeEntity> print contacts
emailmatchpattern <RegularExpression>
Delete Gmail labels based on label names
gam <UserTypeEntity> delete labels regex:<RegularExpression>
Display Gmail messages based on label names
gam <UserTypeEntity> print|show messages|threads
[labelmatchpattern <RegularExpression>
Display Gmail messages based on sender email address
gam <UserTypeEntity> print|show messages|threads
[sendermatchpattern <RegularExpression>]
<LabelName>|regex:<RegularExpression>
Display Gmail messages based on attachment names
gam <UserTypeEntity> print|show messages|threads
[showattachments [attachmentnamepattern <RegularExpression>]]
Save Gmail message attachments based on attachment names
gam <UserTypeEntity> show messages|threads
[saveattachments [attachmentnamepattern <RegularExpression>]]
Select Groups to display and which members to display
gam print groups
[emailmatchpattern [not] <RegularExpression>] [namematchpattern [not] <RegularExpression>]
[descriptionmatchpattern [not] <RegularExpression>]
[memberemaildisplaypattern|memberemailskippattern <RegularExpression>]
Select Groups to display membership and which members to display
gam print group-members
[emailmatchpattern [not] <RegularExpression>] [namematchpattern [not] <RegularExpression>]
[descriptionmatchpattern [not] <RegularExpression>]
[memberemaildisplaypattern|memberemailskippattern <RegularExpression>]
Manage Group membership
gam update group|groups <GroupEntity> clear [member] [manager] [owner]
[emailclearpattern|emailretainpattern <RegularExpression>]
Select User aliases to display
gam print users
[aliasmatchpattern <RegularExpression>]
Display Drive file information based on file names
gam <UserTypeEntity> print|show filecounts
[filenamematchpattern <RegularExpression>]
gam <UserTypeEntity> print filelist
[filenamematchpattern <RegularExpression>]
gam <UserTypeEntity> print|show filetree
[filenamematchpattern <RegularExpression>]
Update Drive file name based on a pattern
gam <UserTypeEntity> update drivefile <DriveFileEntity>
(replacefilename <RegularExpression> <String>)*
Select Vault exports to download
gam download vaultexport <ExportItem> matter <MatterItem>
[bucketmatchpattern <RegularExpression>] [objectmatchpattern <RegularExpression>]
When substituting, Gam uses the sub function which looks for a match anywhere in a string.
- "^Foo Bar$"` - match the entire string "Foo Bar"
- "^Foo Bar"` - match a string that starts with "Foo Bar"
- "Foo Bar"` - match a string that contains "Foo Bar"
- "Foo Bar$"` - match a string that ends with "Foo Bar"
Collections
keypattern <RegularExpression> keyvalue <String>
Updating Calendar event descriptions uses the search function which looks for a match anywhere in a string.
gam calendars <CalendarEntity> update events [<EventEntity>] replacedescription <RegularExpression> <String>
gam <UserTypeEntity> update events <UserCalendarEntity> [<EventEntity>] replacedescription <RegularExpression> <String>
Updating Drive file names uses the search function which looks for a match anywhere in a string.
gam <UserTypeEntity> update drivefile <DriveFileEntity>
replacefilename <RegularExpression> <String>
replacefilename "^(.+) (.+)$" "\2 \1" - swap the two words separated by space, e.g. "Foo Bar" becomes "Bar Foo"
Updating Gmail label names uses the search function which looks for a match anywhere in a string.
gam <UserTypeEntity> update label
search <RegularExpression> replace <LabelReplacement>
search "^Foo Bar$" replace "Doodle" - replace the entire string "Foo Bar" with "Doodle"
Updating User primary email addresses uses the search function which looks for a match anywhere in a string.
gam <UserTypeEntity> update user
updateprimaryemail <RegularExpression> <EmailReplacement>
updateprimaryemail "^(.).*_(.+)@(.+)$" <\1\2@\3> - replace "first_last@domain.com" with "flast@domain.com"
When searching, Gam uses the search function which always looks for a match anywhere in a string.
- "^Foo Bar$"` - match the entire string "Foo Bar"
- "^Foo Bar"` - match a string that starts with "Foo Bar"
- "Foo Bar"` - match a string that contains "Foo Bar"
- "Foo Bar$"` - match a string that ends with "Foo Bar"
CSV input and output row filtering use the search function which looks for a match anywhere in a string.
<FieldNameFilter> :: = <RegularExpression>
<RowValueFilter> ::=
[(any|all):]regex:<RegularExpression>|
[(any|all):]regexcs:<RegularExpression>|
[(any|all):]notregex:<RegularExpression>|
[(any|all):]notregexcs:<RegularExpression>
Calendar event matchfields use the search function which looks for a match anywhere in a string.
<EventMatchProperty> ::=
(matchfield attendees <EmailAddressEntity>)|
(matchfield attendeespattern <RegularExpression>)|
(matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>)|
(matchfield creatoremail <RegularExpression>)|
(matchfield creatorname <RegularExpression>)|
(matchfield description <RegularExpression>)|
(matchfield location <RegularExpression>)|
(matchfield organizeremail <RegularExpression>)|
(matchfield organizername <RegularExpression>)|
(matchfield status <RegularExpression>)|
(matchfield summary <RegularExpression>)|
(matchfield transparency <RegularExpression>)|
(matchfield visibility <RegularExpression>)
<EventSelectEntity> ::=
(<EventSelectProperty>+ <EventMatchProperty>*)
Updating user primary email addresses uses the search function which looks for a match anywhere in a string.
gam <UserTypeEntity> update user <UserAttribute>* updateprimaryemail <RegularExpression> <EmailReplacement>
Need more help? Ask on the GAM Discussion Group
Update History
Installation
- How to Install GAM7
- How to Update Advanced GAM to GAM7
- How to Update GAM7
- How to Upgrade from Legacy GAM
- Install GAM as Python Library
- GAM7 on Chrome OS Devices
- GAM7 on Android Devices
- Google Network Addresses
- HTTPS Proxy
- SSL Root CA Certificates
- How to Uninstall GAM7
Configuration
- Authorization
- GAM Configuration
- Running GAM7 securely on a Google Compute Engine
- Using GAM7 with a delegated admin service account
- Using GAM7 with a YubiKey
Notes and Information
- Upgrade Benefits
- Questions? Visit the GAM Discussion Forum
- Scripts
- Other Resources
- Drive REST API v3
- BNF Syntax
- GAM Return Codes
- Python Regular Expressions
- Rclone
Definitions
Command Processing
- Bulk Processing
- Command Line Parsing
- Command Logging and Progress
- Command data from Google Docs/Sheets/Storage
- CSV Special Characters
- CSV Input Filtering
- CSV Output Filtering
- Meta Commands and File Redirection
- Permission matches
- Tag Replace
- Todrive
Collections
Client Access
- Addresses
- Administrators
- Alert Center
- Aliases
- Calendars
- Calendars - Access
- Calendars - Events
- Chrome Auto Update Expiration Counts
- Chrome Browser Cloud Management
- Chrome Device Needs Attention Counts
- Chrome Installed Apps
- Chrome Policies
- Chrome Printers
- Chrome Version Counts
- Chrome Version History
- ChromeOS Devices
- Classroom - Courses
- Classroom - Guardians
- Classroom - Invitations
- Classroom - Membership
- Cloud Channel
- Cloud Identity Devices
- Cloud Identity Groups
- Cloud Identity Groups - Membership
- Cloud Identity Policies
- Cloud Storage
- Context Aware Access Levels
- Customer
- Domains
- Domains - Verification
- Domain People - Contacts & Profiles
- Domain Shared Contacts - Global Address List
- Email Audit Monitor
- Find File Owner
- Google Data Transfers
- Groups
- Groups - Membership
- Inbound SSO
- Licenses
- Mobile Devices
- Organizational Units
- Reports
- Reseller
- Resources
- Send Email
- Schemas
- Shared Drives
- Sites
- Users
- Unmanaged Accounts
- Users - Signout and Turn off 2-Step Verification
- Vault - Takeout
- Version and Help
Special Service Account Access
Service Account Access
- Users - Analytics Admin
- Users - Application Specific Passwords
- Users - Backup Verification Codes
- Users - Calendars
- Users - Calendars - Access
- Users - Calendars - Events
- Users - Chat
- Users - Classification Labels
- Users - Classroom - Profile
- Users - Deprovision
- Users - Contacts
- Users - Contacts - Delegates
- Users - Drive - File Selection
- Users - Drive - Activity/Settings
- Users - Drive - Cleanup
- Users - Drive - Comments
- Users - Drive - Copy/Move
- Users - Drive - Files-Display
- Users - Drive - Files-Manage
- Users - Drive - Orphans
- Users - Drive - Ownership
- Users - Drive - Permissions
- Users - Drive - Query
- Users - Drive - Revisions
- Users - Drive - Shortcuts
- Users - Drive - Transfer
- Users - Forms
- Users - Gmail - Client Side Encryption
- Users - Gmail - Delegates
- Users - Gmail - Filters
- Users - Gmail - Forwarding
- Users - Gmail - Labels
- Users - Gmail - Messages/Threads
- Users - Gmail - Profile
- Users - Gmail - S/MIME
- Users - Gmail - SendAs/Signature/Vacation
- Users - Gmail - Settings
- Users - Group Membership
- Users - Keep
- Users - Looker Studio
- Users - Meet
- Users - Classroom - Profile
- Users - People - Contacts & Profiles
- Users - Photo
- Users - Profile Sharing
- Users - Shared Drives
- Users - Spreadsheets
- Users - Tasks
- Users - Tokens
- Users - YouTube