===MMUNIX - UNIX-like commands: cat dir grep more=== {{ :migratedattachments:mmbasic_original:mmunix_v2.zip?linkonly}} {{ :migratedattachments:mmbasic_original:mmunix.zip?linkonly}} ==UNIX-like Commands for the MaxiMite== The following four UNIX-like commands are implemented as "implied RUN commands" (see page 24 of the MMBasic manual for implied RUN commands): cat catenate files to output dir list files grep search files using a pattern or string more file pager and hexdump These commands support the following useful command-line features: * File and directory name globbing with ''*'' and ''?'' * Paths can be separated with ''\'' as usual or with ''/'' * Input can be redirected with ''< FILE'' * Output can be redirected with ''> FILE'' or ''>> FILE'' (append) These are implied RUN commands that you can rename, for example rename file CAT.BAS to MMCAT.BAS to rename ''cat'' to ''mmcat''. ===Download=== Download MMUNIX.zip from Attachments in the upper right corner. ===cat - CAT.BAS=== Catenates one or more files to output. Usage: cat PATHNAMES < FILE redirect input from the specified FILE > FILE redirect output to the specified FILE >> FILE append output to the specified FILE PATHNAMES list of dir/file paths to catenate, using * and ? wildcards When ''PATHNAMES'' is not provided or a - argument is provided then this command reads input from standard input. Example: Catenate all .bas files in the project directory into bundle.bas: cat project/*.bas > bundle.bas ===dir - DIR.BAS=== Lists the contents of one or more directories. Usage: dir [-a][-p] PATHNAMES -a show hidden files and directories -p do not pause < FILE redirect input from the specified FILE > FILE redirect output to the specified FILE >> FILE append output to the specified FILE PATHNAMES list of dir/file paths to list, using * and ? wildcards When PATHNAMES is not provided, lists the contenst of the current directory. Example: List the contents of the project and reports directories without pausing: dir -p project reports ===grep - GREP.BAS=== Searches one or more files for a regex pattern or string match. Usage: grep [-f][-n] "PATTERN" PATHNAMES -f fast string matching -n include line numbers in the output < FILE redirect input from the specified FILE > FILE redirect output to the specified FILE >> FILE append output to the specified FILE PATTERN regex composed of . []] ? * + ^ $ PATHNAMES list of dir/file paths to search, using * and ? wildcards Option ''-f'' matches a string provided as ''"PATTERN"'', rather than a regex, and is much faster. Regex syntax: . matches any character [abc] matches a, b or c \. matches ., likewise \? matches ?, \\ matches \ and so on ? matches zero or one of the previous character, reluctantly * matches zero or more of the previous character, reluctantly + matches one or more of the previous character, reluctantly ^ matches begin of text $ matches end of text Example: Search and display the lines with line numbers of .bas files in the project directory that have the text "Usage" at the start of the line: grep -n "^Usage:" project/*.bas ===more - MORE.BAS=== Page through one or more files or display hexdump. The pager pauses after each page is displayed, use keys to advance: SPACE next page ENTER next line ESC quit this file Usage: more [-a][-n][-p][-r][-x] PATHNAMES -a show contents of hidden files -n add line numbers -p do not pause -r show raw control characters -x show hex dump < FILE redirect input from the specified FILE > FILE redirect output to the specified FILE >> FILE append output to the specified FILE PATHNAMES list of dir/file paths to display, using * and ? wildcards Option -x displays a hexdump and ASCII table of the file contents. Example: Display all .bas files in the project directory and its subdirectories: more project/*.bas project/*/*.bas ===LICENSE AND COPYRIGHT=== BSD-3 open source, Copyright R.A. van Engelen