Visit Our UNIX and Linux User Community

Linux and UNIX Man Pages

Test Your Knowledge in Computers #419
Difficulty: Easy
Few popular modern Web browsers support JavaScript with built-in interpreters.
True or False?
Linux & Unix Commands - Search Man Pages

strsep(3) [bsd man page]

STRSEP(3)						     Library Functions Manual							 STRSEP(3)

NAME
strsep - separate strings SYNOPSIS
#include <string.h> char * strsep(stringp, delim) char **stringp; char *delim; DESCRIPTION
The strsep() function locates, in the string referenced by *stringp , the first occurrence of any character in the string delim (or the terminating `' character) and replaces it with a `'. The location of the next character after the delimiter character (or NULL, if the end of the string was reached) is stored in *stringp . The original value of *stringp is returned. An ``empty'' field, i.e. one caused by two adjacent delimiter characters, can be detected by comparing the location referenced by the pointer returned in *stringp to `'. If *stringp is initially NULL, strsep() returns NULL. EXAMPLES
The following uses strsep() to parse a string, containing tokens delimited by white space, into an argument vector: char **ap, *argv[10], *inputstring; for (ap = argv; (*ap = strsep(&inputstring, " ")) != NULL;) if (**ap != '') ++ap; HISTORY
The strsep() function is intended as a replacement for the strtok() function. While the strtok() function should be preferred for porta- bility reasons (it conforms to ANSI C X3.159-1989 (``ANSI C'')) it is unable to handle empty fields, i.e. detect fields delimited by two adjacent delimiter characters, or to be used for more than a single string at a time. The strsep() function first appeared in 4.4BSD. 4.4 Berkeley Distribution January 12, 1996 STRSEP(3)

Check Out this Related Man Page

STRSEP(3)						   BSD Library Functions Manual 						 STRSEP(3)

NAME
strsep, stresep -- separate strings LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <string.h> char * strsep(char **stringp, const char *delim); char * stresep(char **stringp, const char *delim, int escape); DESCRIPTION
The strsep() function locates, in the nul-terminated string referenced by *stringp, the first occurrence of any character in the string delim (or the terminating '' character) and replaces it with a ''. The location of the next character after the delimiter character (or NULL, if the end of the string was reached) is stored in *stringp. The original value of *stringp is returned. An ``empty'' field, i.e., one caused by two adjacent delimiter characters, can be detected by comparing the location referenced by the pointer returned by strsep() to ''. If *stringp is initially NULL, strsep() returns NULL. The stresep() function also takes an escape character that allows quoting the delim- iter character so that it can be part of the source string. EXAMPLES
The following uses strsep() to parse a string, containing tokens delimited by white space, into an argument vector: char **ap, *argv[10], *inputstring; for (ap = argv; ap < &argv[9] && (*ap = strsep(&inputstring, " ")) != NULL;) { if (**ap != '') ap++; } HISTORY
The strsep() function is intended as a replacement for the strtok() function. While the strtok() function should be preferred for portabil- ity reasons (it conforms to ANSI X3.159-1989 (``ANSI C89'')) it is unable to handle empty fields, i.e., detect fields delimited by two adja- cent delimiter characters, or to be used for more than a single string at a time. The strsep() function first appeared in 4.4BSD. BSD
August 12, 2006 BSD

15 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How can I rename multiple files depending on a string occuring in the filenames?

I have many files that have "inputstring" somewhere in their filename (without the quotes), and I want to rename them all so that "inputstring" is replaced with "newstring". And I also want to specify arbitrary text for "inputstring" and "newstring" so that I can call the scripts that does this... (6 Replies)
Discussion started by: karman
6 Replies

2. Shell Programming and Scripting

Escaping specific character in awk

Hello there, I have a bit of dirty delimited file, I mentioned dirty because, the delimiter can also appear in wrong positions. However, one uniqueness of this file is whenever the delimiter appear inside the double quote, then do not consider as delimiter, if it appear outside double then... (8 Replies)
Discussion started by: brainyoung
8 Replies

3. Shell Programming and Scripting

Shell scripts for record Re format

I have few files from windows which are tab delimited or |' delimited files. I need to convert these files without any delimiter ( so in a way it would become variable length with no delimiter ) Can someone help me with the command in bourne shell scripts., ( I am trying with awk ) Thanks In... (6 Replies)
Discussion started by: Shanks
6 Replies

4. Shell Programming and Scripting

Large pipe delimited file that I need to add CR/LF every n fields

I have a large flat file with variable length fields that are pipe delimited. The file has no new line or CR/LF characters to indicate a new record. I need to parse the file and after some number of fields, I need to insert a CR/LF to start the next record. Input file ... (2 Replies)
Discussion started by: clintrpeterson
2 Replies

5. Shell Programming and Scripting

Substring based on delimiter, finding last delimiter

Hi, I have a string like ABC.123.XYZ-A1-B2-P1-C4. I want to delimit the string based on "-" and then get result as only two strings. One with string till last hyphen and other with value after last hyphen... For this case, it would be something like first string as "ABC.123.XYZ-A1-B2-P1" and... (6 Replies)
Discussion started by: gupt_ash
6 Replies

6. Shell Programming and Scripting

how to build a pipe delimited string

#! /bin/csh set delimiter = | foreach i (*) set str_deli="$i$delimiter" question: how to retain the value of str_deli so i can build a pipe delimited string? end (1 Reply)
Discussion started by: jdsignature88
1 Replies

7. Shell Programming and Scripting

Passing "|" in split function

Hi, Can we pass delimiter "|" as reference. Example: my $delim = '|'; print "delim = <$delim> \n"; my $word = "I|know|you"; my ($fld1,$fld2,$fld3) = split(/\$delim/,$word); print "fld1 = $fld1 \n"; print "fld2 = $fld2 \n"; print "fld3 = $fld3 \n"; This above code does not work... (2 Replies)
Discussion started by: jisha
2 Replies

8. Shell Programming and Scripting

Parsing delimited file

I'll have a file with ever changing lengths depending on the report. Right now it is stored by : delimiter. My question is how do I parse through this b/c it will be changing lengths each time. Example: 1:2:3:4:5 1:2:3:4:5:6:7:8:9 1:2:3 I want to take each one and place in newline for... (5 Replies)
Discussion started by: mhuffs90171
5 Replies

9. Shell Programming and Scripting

Conditional replacement of a delimiter

Hello, I'm new to this forum but this seems like the place to ask this question. I have a pipe delimited data file with the fields except for the header being encased in double quotes. I found out that some of the fields have an trash pipe within the data itself. I'd like to conditionally... (4 Replies)
Discussion started by: samahs
4 Replies

10. UNIX for Dummies Questions & Answers

find string and get the rest of the line in a pipe delimited file

Hi friends, I have a file where I should search for a string and get the rest of the line but without the delimiter using awk. for example I have the series of string in a file: input_string.txt bbb ccc aaa and the mapping file looks like this. mapping.txt aaa|12 bbb|23 ccc|43... (11 Replies)
Discussion started by: kokoro
11 Replies

11. Shell Programming and Scripting

Cutting values with delimiter

Hi All, I have a string with , delimiter america,finland,netherlands Now i want these values to be stored in file as below with newline character at end of each value america finland netherlands Regards Prasad (3 Replies)
Discussion started by: krishna_gnv
3 Replies

12. Shell Programming and Scripting

Replacing multiple spaces in flat file

Greetings all I have a delimited text file (the delimiter is ';') where certain fields consist of many blanks e.g. ; ; and ; ; Before I separate the data I need to eliminate these blanks altogether. I tried the sed command using the following syntax: sed -i 's/; *;/;;/g' <filename> ... (15 Replies)
Discussion started by: S. BASU
15 Replies

13. Shell Programming and Scripting

Linux convert Comma delimited file to pipe

I have file in linux with comma delimited and string fields in double quotations ", I need to convert them to pipe delimiter please share your inputs. Example: Input: "2017-09-30","ACBD,TVF","01234",NULL,18,NULL,"686091802","BANK OF ABCD, LIMITED, THE",790456 Output: ... (4 Replies)
Discussion started by: shieksir
4 Replies

14. Shell Programming and Scripting

Insert a value between two empty delimiter in the file.

Would like to insert value between two empty delimiter and at the very last too if empty. $ cat customerleft.tbl 300|Customer#000000300|I0fJfo60DRqQ|7|17-165-193-5964|8084.92|\N|p fluffily among the slyly express grouches. furiously express instruct||||||||||||||||||||||||\N... (3 Replies)
Discussion started by: Mannu2525
3 Replies

15. UNIX for Beginners Questions & Answers

Convert a fixed width file to a delimited file

Hi - this is a generic question .... is there any utility which can convert a fixed width file format to a delimited file (any given character delimited) ? (5 Replies)
Discussion started by: i4ismail
5 Replies

Featured Tech Videos