f78
Functions for File Names
Each of the following functions performs a specific transformation on a file
name. The argument of the function is regarded as a series of file names,
separated by whitespace. (Leading and trailing whitespace is ignored.) Each file name
in the series is transformed in the same way and the results are concatenated
with single spaces between them.
For example,
A file name that ends with a slash becomes an empty string. This is
unfortunate because it means that the result does not always have the same number of
whitespace-separated file names as the argument had; but we do not see any other
valid alternative.
For example,
For example,
For example,
For example,
For example,
Whitespace between the words in the lists is not preserved; it is replaced
with a single space. This function can merge the results of the
For example,
For example,
Although
Extracts the directory-part of each file name in names. The directory-part of
the file name is everything up through (and including) the last slash in it. If
the file name contains no slash, the directory part is the string ./.
Extracts all but the directory-part of each file name in names. If the file name contains no slash, it is left unchanged. Otherwise,
everything through the last slash is removed from it.
Extracts the suffix of each file name in names. If the file name contains a
period, the suffix is everything starting with the last period. Otherwise, the
suffix is the empty string. This frequently means that the result will be empty
when names is not, and if names contains multiple file names, the result may
contain fewer file names.
Extracts all but the suffix of each file name in names.If the file name contains a period, the basename is everything starting up to
(and not including) the last period. Otherwise, the basename is the entire
file name. For example, $(basename src/foo.c hacks) produces the result, src/foo hacks.
The argument, names, is regarded as a series of names, sep-arated by whitespace; suffix is used as a unit. The value of suffix is appended to the end of each individual name and the resulting larger names
are concatenated with single spaces between them.
The argument, names, is regarded as a series of names, separated by whitespace; prefix is used as a unit. The value of prefix is prepended to the front of each individual name and the resulting larger
names are concatenated with single spaces between them.
Concatenates the two arguments word by word; the two first words (one from
each argument), concatenated, form the first word of the result; the two second
words form the second word of the result, and so on. So the nth word of the result comes from the nth word of each argument. If one argument has more words that the other, the
extra words are copied unchanged into the result.
Returns the nth word of text. The legitimate values of n start from 1. If n is bigger than the number of words in text, the value is empty.
Returns the number of words in text. Thus, the last word of text is $(word $(words text),text).
The argument, names, is regarded as a series of names, separated by whitespace. The value is the
first name in the series. The rest of the names are ignored.
The argument pattern is a file name pattern, typically containing wildcard characters (as in shell
file name patterns). The result of wildcard is a space-separated list of the
names of existing files that match the pattern. See Using Wildcard Characters in File Names.