# snakecase > Convert a string to snake case.
## Usage ```javascript var snakecase = require( '@stdlib/string/snakecase' ); ``` #### snakecase( str ) Converts a string to snake case. ```javascript var str = snakecase( 'Foo Bar' ); // returns 'foo_bar' str = snakecase( 'I am a tiny little house' ); // returns 'i_am_a_tiny_little_house' str = snakecase( 'Hello World!' ); // returns 'hello_world' ```
## Examples ```javascript var snakecase = require( '@stdlib/string/snakecase' ); var str = 'foo bar baz'; var out = snakecase( str ); // returns 'foo_bar_baz' str = 'foo_baz'; out = snakecase( str ); // returns 'foo_baz' str = 'foo_bar_baz!'; out = snakecase( str ); // returns 'foo_bar_baz' str = 'beep boop!'; out = snakecase( str ); // returns 'beep_boop' str = 'foo-baz'; out = snakecase( str ); // returns 'foo_baz' str = 'Welcome! 😀'; out = snakecase( str ); // returns 'welcome_😀' ```
* * *
## CLI
### Usage ```text Usage: snakecase [options] [] Options: -h, --help Print this message. -V, --version Print the package version. --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 $'beEp booP\nfooBar' | snakecase --split /\r?\n/ # Escaped... $ echo -n $'beEp booP\nfooBar' | snakecase --split /\\r?\\n/ ``` - The implementation ignores trailing delimiters.
### Examples ```bash $ snakecase 'hello world!' hello_world ``` To use as a [standard stream][standard-streams], ```bash $ echo -n 'beEp booP' | snakecase beep_boop ``` 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 'beEp booP\tfooBar' | snakecase --split '\t' beep_boop foo_bar ```