Page History: MMUNIX - UNIX-like commands: cat dir grep more
Compare Page Revisions
Page Revision: 2018/04/22 03:11
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