diff options
authorWarner Losh <imp@FreeBSD.org>2021-07-20 02:10:22 +0000
committerWarner Losh <imp@FreeBSD.org>2021-07-20 04:33:26 +0000
commitb891aedcdd2d9a3e1530e45f6b785b768cccc466 (patch)
parent7685f8344d9a59e9498bdfebb48066f98216fecd (diff)
awk: Add more details top the FS variable
The current description of the FS is true, but only part of the truth. Add information about single characters and note that FS="" is undefined by the standard, though the two other awk implenetations (mawk and gawk) also have this interpretation. PR: 226112 Sponsored by: Netflix
1 files changed, 19 insertions, 2 deletions
diff --git a/usr.bin/awk/awk.1 b/usr.bin/awk/awk.1
index 4be4b96cabce..b85efe9d87cd 100644
--- a/usr.bin/awk/awk.1
+++ b/usr.bin/awk/awk.1
@@ -131,8 +131,9 @@ and newlines are used as field separators
This is convenient when working with multi-line records.
An input line is normally made up of fields separated by whitespace,
-or by the regular expression
-.Va FS .
+or by the extended regular expression
+.Va FS
+as described below.
The fields are denoted
.Va $1 , $2 , ... ,
@@ -141,6 +142,22 @@ refers to the entire line.
.Va FS
is null, the input line is split into one field per character.
+While both gawk and mawk have the same behavior, it is unspecified in the
+.St -p1003.1-2008
+.Va FS
+is a single space, then leading and trailing blank and newline characters are
+Fields are delimited by one or more blank or newline characters.
+A blank character is a space or a tab.
+.Va FS
+is a single character, other than space, fields are delimited by each single
+occurrence of that character.
+.Va FS
+variable defaults to a single space.
Normally, any number of blanks separate fields.
In order to set the field separator to a single blank, use the