From e4655963c25e7b6c4ab22a095e04c7cd3de61b0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20G=2E=20MARAND?= Date: Sat, 9 Jul 2022 22:33:23 +0200 Subject: Update awk.html.markdown The `gsub` example is incorrect: with pattern `"e+"`, one gets `"m.t m. at th. bar"`. To get `"m..t m. at th. bar"` as documented, the pattern is just `"e"`. Otherwise we could keep "e+" but change the result. Also removed an extra dot at the end of a sentence. --- awk.html.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'awk.html.markdown') diff --git a/awk.html.markdown b/awk.html.markdown index 3ff3f937..b8b6271a 100644 --- a/awk.html.markdown +++ b/awk.html.markdown @@ -48,7 +48,7 @@ BEGIN { # the preliminary set-up code, before you process any text files. If you # have no text files, then think of BEGIN as the main entry point. - # Variables are global. Just set them or use them, no need to declare.. + # Variables are global. Just set them or use them, no need to declare. count = 0; # Operators just like in C and friends @@ -209,7 +209,7 @@ function string_functions( localvar, arr) { # Both return number of matches replaced localvar = "fooooobar"; sub("fo+", "Meet me at the ", localvar); # localvar => "Meet me at the bar" - gsub("e+", ".", localvar); # localvar => "m..t m. at th. bar" + gsub("e", ".", localvar); # localvar => "m..t m. at th. bar" # Search for a string that matches a regular expression # index() does the same thing, but doesn't allow a regular expression -- cgit v1.2.3 From eebb575245208076d7b863c143d413e854199df7 Mon Sep 17 00:00:00 2001 From: Stephan Spindler <25225092+s-spindler@users.noreply.github.com> Date: Wed, 27 Jul 2022 21:28:12 +0200 Subject: Update awk.html.markdown MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It was either this or change the parameter to `localvar` 🤷 --- awk.html.markdown | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'awk.html.markdown') diff --git a/awk.html.markdown b/awk.html.markdown index b8b6271a..34013251 100644 --- a/awk.html.markdown +++ b/awk.html.markdown @@ -178,26 +178,26 @@ function arithmetic_functions(a, b, c, d) { # Now, to demonstrate the arithmetic functions # Most AWK implementations have some standard trig functions - localvar = sin(a); - localvar = cos(a); - localvar = atan2(b, a); # arc tangent of b / a + d = sin(a); + d = cos(a); + d = atan2(b, a); # arc tangent of b / a # And logarithmic stuff - localvar = exp(a); - localvar = log(a); + d = exp(a); + d = log(a); # Square root - localvar = sqrt(a); + d = sqrt(a); # Truncate floating point to integer - localvar = int(5.34); # localvar => 5 + d = int(5.34); # d => 5 # Random numbers srand(); # Supply a seed as an argument. By default, it uses the time of day - localvar = rand(); # Random number between 0 and 1. + d = rand(); # Random number between 0 and 1. # Here's how to return a value - return localvar; + return d; } function string_functions( localvar, arr) { -- cgit v1.2.3 From 2a56a9cc5ecd7a4daf6c8b90c2f4ad51d1e75ce2 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 23 Nov 2022 20:48:05 +0100 Subject: run `sed -i "s/ *$//" awk.html.markdown` Remove of trailing spaces. --- awk.html.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'awk.html.markdown') diff --git a/awk.html.markdown b/awk.html.markdown index 34013251..55b8e5da 100644 --- a/awk.html.markdown +++ b/awk.html.markdown @@ -118,11 +118,11 @@ BEGIN { # Arrays arr[0] = "foo"; arr[1] = "bar"; - + # You can also initialize an array with the built-in function split() - + n = split("foo:bar:baz", arr, ":"); - + # You also have associative arrays (actually, they're all associative arrays) assoc["foo"] = "bar"; assoc["bar"] = "baz"; @@ -240,7 +240,7 @@ function io_functions( localvar) { # for this can be treated as a file handle, for purposes of I/O. This makes # it feel sort of like shell scripting, but to get the same output, the string # must match exactly, so use a variable: - + outfile = "/tmp/foobar.txt"; print "foobar" > outfile; @@ -261,7 +261,7 @@ function io_functions( localvar) { # Reads a line from a file and stores in localvar infile = "/tmp/foobar.txt"; - getline localvar < infile; + getline localvar < infile; close(infile); } @@ -273,10 +273,10 @@ function io_functions( localvar) { # When you pass arguments to AWK, they are treated as file names to process. # It will process them all, in order. Think of it like an implicit for loop, # iterating over the lines in these files. these patterns and actions are like -# switch statements inside the loop. +# switch statements inside the loop. /^fo+bar$/ { - + # This action will execute for every line that matches the regular # expression, /^fo+bar$/, and will be skipped for any line that fails to # match it. Let's just print the line: @@ -382,5 +382,5 @@ Further Reading: * [Awk man page](https://linux.die.net/man/1/awk) * [The GNU Awk User's Guide](https://www.gnu.org/software/gawk/manual/gawk.html) GNU Awk is found on most Linux systems. * [AWK one-liner collection](http://tuxgraphics.org/~guido/scripts/awk-one-liner.html) -* [Awk alpinelinux wiki](https://wiki.alpinelinux.org/wiki/Awk) a technical summary and list of "gotchas" (places where different implementations may behave in different or unexpected ways). +* [Awk alpinelinux wiki](https://wiki.alpinelinux.org/wiki/Awk) a technical summary and list of "gotchas" (places where different implementations may behave in different or unexpected ways). * [basic libraries for awk](https://github.com/dubiousjim/awkenough) -- cgit v1.2.3 From 15c75c28b94d1700d75baba4346e70beb43d8137 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 23 Nov 2022 20:53:39 +0100 Subject: rm overly long lines, consider markdownlint Lines longer than 80 characters are edited. Within reason, issues identified by markdownlint[1] are equally curated. [1] https://github.com/markdownlint/markdownlint, version 0.12.0 --- awk.html.markdown | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'awk.html.markdown') diff --git a/awk.html.markdown b/awk.html.markdown index 55b8e5da..dc22a2bd 100644 --- a/awk.html.markdown +++ b/awk.html.markdown @@ -123,7 +123,7 @@ BEGIN { n = split("foo:bar:baz", arr, ":"); - # You also have associative arrays (actually, they're all associative arrays) + # You also have associative arrays (indeed, they're all associative arrays) assoc["foo"] = "bar"; assoc["bar"] = "baz"; @@ -216,7 +216,8 @@ function string_functions( localvar, arr) { match(localvar, "t"); # => 4, since the 't' is the fourth character # Split on a delimiter - n = split("foo-bar-baz", arr, "-"); # a[1] = "foo"; a[2] = "bar"; a[3] = "baz"; n = 3 + n = split("foo-bar-baz", arr, "-"); + # result: a[1] = "foo"; a[2] = "bar"; a[3] = "baz"; n = 3 # Other useful stuff sprintf("%s %d %d %d", "Testing", 1, 2, 3); # => "Testing 1 2 3" @@ -238,8 +239,8 @@ function io_functions( localvar) { # AWK doesn't have file handles, per se. It will automatically open a file # handle for you when you use something that needs one. The string you used # for this can be treated as a file handle, for purposes of I/O. This makes - # it feel sort of like shell scripting, but to get the same output, the string - # must match exactly, so use a variable: + # it feel sort of like shell scripting, but to get the same output, the + # string must match exactly, so use a variable: outfile = "/tmp/foobar.txt"; @@ -376,11 +377,15 @@ END { } ``` + Further Reading: * [Awk tutorial](http://www.grymoire.com/Unix/Awk.html) * [Awk man page](https://linux.die.net/man/1/awk) -* [The GNU Awk User's Guide](https://www.gnu.org/software/gawk/manual/gawk.html) GNU Awk is found on most Linux systems. +* [The GNU Awk User's Guide](https://www.gnu.org/software/gawk/manual/gawk.html) + GNU Awk is found on most Linux systems. * [AWK one-liner collection](http://tuxgraphics.org/~guido/scripts/awk-one-liner.html) -* [Awk alpinelinux wiki](https://wiki.alpinelinux.org/wiki/Awk) a technical summary and list of "gotchas" (places where different implementations may behave in different or unexpected ways). +* [Awk alpinelinux wiki](https://wiki.alpinelinux.org/wiki/Awk) a technical + summary and list of "gotchas" (places where different implementations may + behave in different or unexpected ways). * [basic libraries for awk](https://github.com/dubiousjim/awkenough) -- cgit v1.2.3 From 62b5f91d724a7d5cbcbe18086a9ecbc449128e4b Mon Sep 17 00:00:00 2001 From: Adrien LUDWIG <42720099+Adrien-LUDWIG@users.noreply.github.com> Date: Fri, 8 Sep 2023 05:27:46 +0000 Subject: [awk] Fix wrong example output (in all languages) (#4750) --- awk.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'awk.html.markdown') diff --git a/awk.html.markdown b/awk.html.markdown index dc22a2bd..e1d4a0a3 100644 --- a/awk.html.markdown +++ b/awk.html.markdown @@ -209,7 +209,7 @@ function string_functions( localvar, arr) { # Both return number of matches replaced localvar = "fooooobar"; sub("fo+", "Meet me at the ", localvar); # localvar => "Meet me at the bar" - gsub("e", ".", localvar); # localvar => "m..t m. at th. bar" + gsub("e", ".", localvar); # localvar => "M..t m. at th. bar" # Search for a string that matches a regular expression # index() does the same thing, but doesn't allow a regular expression -- cgit v1.2.3