split(n) Tcl Built-In Commands split(n)

```

```

# [NAME](#NAME)

split - Split a string into a proper Tcl list

# [SYNOPSIS](#SYNOPSIS)

**split string** ?*splitChars*?

```

```

# [DESCRIPTION](#DESCRIPTION)

Returns a list created by splitting *string* at each character that is in the *splitChars* argument. Each element of the result list will consist of the characters from *string* that lie between instances of the characters in *splitChars*. Empty list elements will be generated if *string* contains adjacent characters in *splitChars*, or if the first or last character of *string* is in *splitChars*. If *splitChars* is an empty string then each character of *string* becomes a separate element of the result list. *SplitChars* defaults to the standard white-space characters.

# [EXAMPLES](#EXAMPLES)

Divide up a USENET group name into its hierarchical components:

```
split "comp.lang.tcl" .


      → comp lang tcl
```

See how the **split** command splits on *every* character in *splitChars*, which can result in information loss if you are not careful:

```
split "alpha beta gamma" "temp"


      → al {ha b} {} {a ga} {} a
```

Extract the list words from a string that is not a well-formed list:

```
split "Example with {unbalanced brace character"


      → Example with \{unbalanced brace character
```

Split a string into its constituent characters

```
split "Hello world" {}


      → H e l l o { } w o r l d
```

## [PARSING RECORD-ORIENTED FILES](#PARSING_RECORD-ORIENTED_FILES)

Parse a Unix /etc/passwd file, which consists of one entry per line, with each line consisting of a colon-separated list of fields:

```
## Read the file
set fid [open /etc/passwd]
set content [read $fid]
close $fid
## Split into records on newlines
set records [split $content "\n"]
## Iterate over the records
foreach rec $records {


    ## Split into fields on colons


    set fields [split $rec ":"]


    ## Assign fields to variables and print some out...


    lassign $fields \


            userName password uid grp longName homeDir shell


    puts "$longName uses [file tail $shell] for a login shell"
}
```

# [SEE ALSO](#SEE_ALSO)

[join(n)](/man/os/tcl/join.n), [list(n)](/man/os/tcl/list.n), [string(n)](/man/os/tcl/string.n)

# [KEYWORDS](#KEYWORDS)

list, split, string

Tcl

---

Document: split(n) from tcl 9.1.0-r0 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/tcl/Tcl/9.1.0/tcl9.1.0-src.tar.gz
