# truncate
> Truncate a string to a specified length.
## Usage
```javascript
var truncate = require( '@stdlib/string/truncate' );
```
#### truncate( str, len\[, ending] )
Truncates a string to a specified length.
```javascript
var out = truncate( 'beep boop', 7 );
// returns 'beep...'
```
By default, the truncated string is appended with `'...'`. To customize the truncated string, provide an `ending` argument:
```javascript
var out = truncate( 'beep boop', 7, '!' );
// returns 'beep b!'
out = truncate( 'beep boop', 7, '!!!' );
// returns 'beep!!!'
```
## Examples
```javascript
var truncate = require( '@stdlib/string/truncate' );
var str = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
var out = truncate( str, 14 );
// returns 'Lorem ipsum...'
str = 'To be or not to be, that is the question';
out = truncate( str, 19, '!' );
// returns 'To be or not to be!'
str = 'The quick fox jumps over the lazy dog.';
out = truncate( str, 16, '...' );
// returns 'The quick fox...'
str = '🐺 Wolf Brothers 🐺';
out = truncate( str, 6 );
// returns '🐺 W...'
```
* * *
## CLI
### Usage
```text
Usage: truncate [options] [] --len
Options:
-h, --help Print this message.
-V, --version Print the package version.
--len length String length.
--ending str Custom ending. Default: '...'.
--split sep Delimiter for stdin data. Default: '/\\r?\\n/'.
```
### Notes
- If the split separator is a [regular expression][mdn-regexp], ensure that the `split` option is either properly escaped or enclosed in quotes.
```bash
# Not escaped...
$ echo -n $'Hello, World!\nBeep Boop Baz' | truncate --len 6 --split /\r?\n/
# Escaped...
$ echo -n $'Hello, World!\nBeep Boop Baz' | truncate --len 6 --split /\\r?\\n/
```
- The implementation ignores trailing delimiters.
### Examples
```bash
$ truncate 'Hello, World!' --len 8
Hello...
$ truncate 'Hello, World!' --len 6 --ending '!'
Hello!
```
To use as a [standard stream][standard-streams],
```bash
$ echo -n 'Hello, World!' | truncate --len 8
Hello...
```
By default, when used as a [standard stream][standard-streams], the implementation assumes newline-delimited data. To specify an alternative delimiter, set the `split` option.
```bash
$ echo -n 'Hello, World!\tBeep Boop' | truncate --split '\t' --len 8
Hello...
Beep ...
```
[standard-streams]: https://en.wikipedia.org/wiki/Standard_streams
[mdn-regexp]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
[@stdlib/string/truncate-middle]: https://github.com/stdlib-js/string/tree/main/truncate-middle