add perl one-liners

- signed-off-by: trimstray <trimstray@gmail.com>
This commit is contained in:
trimstray 2019-11-26 08:10:04 +01:00
parent c039844fbf
commit b2d6885850

View file

@ -1476,6 +1476,7 @@ In Firefox's addressbar, you can limit results by typing special characters befo
* [awk](#tool-awk) * [awk](#tool-awk)
* [sed](#tool-sed) * [sed](#tool-sed)
* [grep](#tool-grep) * [grep](#tool-grep)
* [perl](#tool-perl)
##### Tool: [terminal](https://en.wikipedia.org/wiki/Linux_console) ##### Tool: [terminal](https://en.wikipedia.org/wiki/Linux_console)
@ -3831,6 +3832,62 @@ grep -- -- filename
grep "\-\-" filename grep "\-\-" filename
``` ```
##### Tool: [perl](https://www.perl.org/)
###### Search and replace (in place)
```bash
perl -i -pe's/SEARCH/REPLACE/' filename
```
###### Edit of `*.conf` files changing all foo to bar (and backup original)
```bash
perl -p -i.orig -e 's/\bfoo\b/bar/g' *.conf
```
###### Prints the first 20 lines from `*.conf` files
```bash
perl -pe 'exit if $. > 20' *.conf
```
###### Search lines 10 to 20
```bash
perl -ne 'print if 10 .. 20' filename
```
###### Delete first 10 lines (and backup original)
```bash
perl -i.orig -ne 'print unless 1 .. 10' filename
```
###### Delete all but lines between foo and bar (and backup original)
```bash
perl -i.orig -ne 'print unless /^foo$/ .. /^bar$/' filename
```
###### Reduce multiple blank lines to a single line
```bash
perl -p -i -00pe0 filename
```
###### Convert tabs to spaces (1t = 2sp)
```bash
perl -p -i -e 's/\t/ /g' filename
```
###### Read input from a file and report number of lines and characters
```bash
perl -lne '$i++; $in += length($_); END { print "$i lines, $in characters"; }' filename
```
#### Shell functions &nbsp;[<sup>[TOC]</sup>](#anger-table-of-contents) #### Shell functions &nbsp;[<sup>[TOC]</sup>](#anger-table-of-contents)
##### Table of Contents ##### Table of Contents