Forrest logo
back to the cat tool

perl:tldr:f3210

perl: Run a regular [e]xpression on `stdin`, printing only the first capture group for each matching [l]ine.
$ cat ${filename} | perl -n -l -e 'print $1 if /${before}(${regular_expression})${after}/'
try on your machine

This command consists of two parts joined together by the pipe "|" symbol.

Part 1: cat ${filename}

  • The "cat" command is used to output the content of a file.
  • ${filename} represents a placeholder for the actual filename or path of the file you want to display the content of.
  • This part will output the content of the specified file.

Part 2: perl -n -l -e 'print $1 if /${before}(${regular_expression})${after}/'

  • The "perl" command is used to execute Perl code.
  • "-n" option is used to loop over the input file line by line.
  • "-l" option is used to automatically add newlines to print statements.
  • "-e" option indicates that the following argument is the Perl code to be executed.
  • 'print $1 if /${before}(${regular_expression})${after}/' is the Perl code to be executed.
    • "${before}", "${regular_expression}", and "${after}" represent placeholder variables that should be replaced with actual values.
    • "/${before}(${regular_expression})${after}/" is a regular expression enclosed in forward slashes.
    • $1 is a Perl variable that represents the first captured group (content within parentheses) in the regular expression.
  • This part will search for lines in the input (content of the file) that match the specified regular expression pattern, and if found, it will print the first captured group ($1) in those lines.

Overall, this command displays the content of a file and searches for lines that match a specific regular expression pattern, printing the first captured group from those lines.

This explanation was created by an AI. In most cases those are correct. But please always be careful and never run a command you are not sure if it is safe.
back to the cat tool