summaryrefslogtreecommitdiffstats
path: root/doc/split.n
diff options
context:
space:
mode:
Diffstat (limited to 'doc/split.n')
-rw-r--r--doc/split.n66
1 files changed, 56 insertions, 10 deletions
diff --git a/doc/split.n b/doc/split.n
index b42c978..f1c66d0 100644
--- a/doc/split.n
+++ b/doc/split.n
@@ -5,10 +5,8 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
-'\" RCS: @(#) $Id: split.n,v 1.3 2000/09/07 14:27:51 poenitz Exp $
-'\"
-.so man.macros
.TH split n "" Tcl "Tcl Built-In Commands"
+.so man.macros
.BS
'\" Note: do not modify the .SH NAME line immediately below!
.SH NAME
@@ -16,7 +14,6 @@ split \- Split a string into a proper Tcl list
.SH SYNOPSIS
\fBsplit \fIstring \fR?\fIsplitChars\fR?
.BE
-
.SH DESCRIPTION
.PP
Returns a list created by splitting \fIstring\fR at each character
@@ -30,18 +27,67 @@ character of \fIstring\fR is in \fIsplitChars\fR.
If \fIsplitChars\fR is an empty string then each character of
\fIstring\fR becomes a separate element of the result list.
\fISplitChars\fR defaults to the standard white-space characters.
-For example,
+.SH EXAMPLES
+.PP
+Divide up a USENET group name into its hierarchical components:
+.PP
+.CS
+\fBsplit\fR "comp.lang.tcl" .
+ \fI\(-> comp lang tcl\fR
+.CE
+.PP
+See how the \fBsplit\fR command splits on \fIevery\fR character in
+\fIsplitChars\fR, which can result in information loss if you are not
+careful:
+.PP
+.CS
+\fBsplit\fR "alpha beta gamma" "temp"
+ \fI\(-> al {ha b} {} {a ga} {} a\fR
+.CE
+.PP
+Extract the list words from a string that is not a well-formed list:
+.PP
.CS
-\fBsplit "comp.unix.misc" .\fR
+\fBsplit\fR "Example with {unbalanced brace character"
+ \fI\(-> Example with \e{unbalanced brace character\fR
.CE
-returns \fB"comp unix misc"\fR and
+.PP
+Split a string into its constituent characters
+.PP
.CS
-\fBsplit "Hello world" {}\fR
+\fBsplit\fR "Hello world" {}
+ \fI\(-> H e l l o { } w o r l d\fR
.CE
-returns \fB"H e l l o { } w o r l d"\fR.
+.SS "PARSING RECORD-ORIENTED FILES"
+.PP
+Parse a Unix /etc/passwd file, which consists of one entry per line,
+with each line consisting of a colon-separated list of fields:
+.PP
+.CS
+## Read the file
+set fid [open /etc/passwd]
+set content [read $fid]
+close $fid
+
+## Split into records on newlines
+set records [\fBsplit\fR $content "\en"]
+
+## Iterate over the records
+foreach rec $records {
+ ## Split into fields on colons
+ set fields [\fBsplit\fR $rec ":"]
+
+ ## Assign fields to variables and print some out...
+ lassign $fields \e
+ userName password uid grp longName homeDir shell
+ puts "$longName uses [file tail $shell] for a login shell"
+}
+.CE
.SH "SEE ALSO"
join(n), list(n), string(n)
-
.SH KEYWORDS
list, split, string
+'\" Local Variables:
+'\" mode: nroff
+'\" End: