Return a formatted list containing fields from a text string.







text to be separated into fields by the ntharg() function The text can be a text string enclosed in double quotation marks, or one or more PSL commands that produce text as output.


integer list specifying the field numbers ntharg() should look for in each line of text . 

Valid Values 
x,y field x and field y 
x-y all fields from x to y inclusive 
-x all fields from 1 to x inclusive 
x- all fields from x to the new-line character inclusive


one or more optional characters that ntharg() should treat as field separators when examining text*Default* 
space and \t (tab)


optional character(s) that ntharg() inserts between each field of output*Default* 
new-line character (\n)


optional character(s) that ntharg() uses to replace each new-line character (\n) that appears intext

new-line character (\n).

If separator is "-" and line_separator is "?", ntharg() converts "red green\nblue orange\nyellow purple" to "red-green?blue-orange?yellow-purple".


The ntharg() function returns the arguments in text and normally interprets each line in text as a white space-separated (space or tab) list of fields. If delimiters is given, it specifies the list of characters that ntharg() should treat as field separators. The ntharg() function normally returns selected fields as a new-line delimited list. If separator is given, it specifies the delimiter to be placed between items in the returned list.

The difference between the ntharg() function and the nthargf() function is as follows:

  • The ntharg() function treats each delimiter that follows a non-delimiter character as the end of a field. Thentharg() function interprets two or more adjacent delimiters as a single delimiter, thereby ignoring multiple delimiters and treating them as one.
  • The nthargf() function treats each delimiter as the end of a field. The nthargf() function interprets two or more adjacent delimiters as delimiting one or more NULL strings whose content can be requested and returned.


The following example prints the login name and home directory of each user listed in the Unix system password file:

foreach user (cat("/etc/passwd")) 

The following example illustrates the difference between the ntharg() function and the nthargf() function:

string = "abc::123:xyz";
A = ntharg(string,"3",":");
B = nthargf(string,"3",":");
print("ntharg() 3rd string argument is ",A,"\n");
print("nthargf() 3rd string argument is ",B,"\n");

The example produces the following output:

ntharg() 3rd string argument is xyz
nthargf() 3rd string argument is 123
Was this page helpful? Yes No Submitting... Thank you