
pgawk Command in Linux
The pgawk command in Linux is an enhanced version of gawk that supports the Profiler feature. A profiler is a tool that analyzes the performance of an AWK script by tracking how many times each line or function is executed. It helps in identifying bottlenecks and optimizing the script.
Table of Contents
Here is a comprehensive guide to the options available with the pgawk command −
- Syntax of pgawk Command
- pgawk Command Options
- Profiling an awk Script using pgawk Command
- Deprecation of pgawk Command
- Profiling an awk Script using gawk Command
Syntax of pgawk Command
The syntax of the pgawk command in Linux is as follows −
Using a program file −
pgawk [POSIX or GNU style options] -f program-file [--] file...
Or using an inline program text −
pgawk [POSIX or GNU style options] [--] program-text file...
In the above syntax −
- [POSIX or GNU style options] − These are command-line options that modify the behavior of the command.
- -f program-file − This option specifies that the AWK program source should be read from the specified file instead of from the command line.
- program-text − This is the actual AWK code, provided directly in the command line.
- file... − This refers to one or more input files that pgawk will process. If no files are specified, it will read from standard input.
pgawk Command Options
The options of the pgawk command are listed below −
Option | Description |
---|---|
-f file | Reads the AWK script from a file instead of inline code. |
-v var=value | Assigns a value to a variable before script execution. |
--profile[=file] | Enables profiling and writes results to file (default: awkprof.out). |
-F separator | Sets the field separator (FS) for input data. |
--dump-variables[=file] | Dumps all global variables and their values to file after execution. |
--lint[=fatal] | Warns about possible issues in the script (use fatal to make warning errors). |
--version | Displays the version of pgawk. |
--help | Displays help information. |
Profiling an awk Script using pgawk Command
To profile an awk script, use the pgawk command in the following way −
pgawk --profile=profile.out -f myscript.awk file.txt
The --profile option enables the profiling and saves the report to the profile.out file. The -f option is used to specify the awk script that is needed to be profiled. The file.txt is a file that the awk script is processing.
Deprecation of pgawk Command
The pgawk command in Linux has been deprecated and removed from GNU Awk (gawk) 5.0 and later. The profiling functionality is now included in gawk itself, making the pgawk redundant.
Profiling an awk Script using gawk Command
Since pgawk is deprecated, as an alternative, use the gawk command with the --profile option.
gawk --profile=profile.out -f myscript.awk file.txt
For the above example, the following awk script (myscript.awk) file is used −

The contents of the file.txt file are as follows −

The following image displays the output of the above command −

The gawk command will also produce a profile.out file report in the current working directory. View the profiling report using the cat command −

BEGIN Block −
Ran once at the start.
- Printed Processing started to indicate the script began execution.
Main Processing Block −
Ran 5 times, once for each input line.
- For each line
- Added the first field ($1) to the total variable.
- Incremented the count variable to track the number of lines processed.
- Printed Processing: followed by the value of the first field ($1).
END Block −
Ran once after all input lines were processed.
- Printed the Total: of all first fields (total).
- Calculated and printed the Average: by dividing the total by count.
- Printed Processing complete to indicate the script is finished.
The above command generates a profiling report similar to what pgawk used to produce.
Note that the pgawk command always enabled profiling and required --profile to specify an output file. The gawk did not enable profiling by default. However, starting from GNU Awk 5.0, profiling is supported using the --profile option.
Conclusion
The pgawk command was an enhanced version of gawk that supported script profiling, helping to analyze performance and optimize AWK scripts. However, it has been deprecated and removed from gawk 5.0 and later. The profiling functionality is now integrated into gawk, which can generate similar reports using the --profile option. This eliminates the need for pgawk, allowing profiling directly within gawk.
In this tutorial, we covered the pgawk command, its syntax, options, and usage in Linux, with an example. It also explains the gawk example for profiling an awk script which is an alternative to pgawk