Sfoglia il codice sorgente

add new awk one-liners

- signed-off-by: trimstray <trimstray@gmail.com>
pull/127/head
trimstray 4 anni fa
parent
commit
35310ec674
1 ha cambiato i file con 106 aggiunte e 11 eliminazioni
  1. +106
    -11
      README.md

+ 106
- 11
README.md Vedi File

@@ -3685,10 +3685,25 @@ python -m base64 -d <<< "dGhpcyBpcyBlbmNvZGVkCg=="

##### Tool: [awk](http://www.grymoire.com/Unix/Awk.html)

###### Remove duplicate entries in a file without sorting
###### Search for matching lines

```bash
awk '!x[$0]++' filename
# egrep foo
awk '/foo/' filename
```

###### Search non matching lines

```bash
# egrep -v foo
awk '!/foo/' filename
```

###### Print matching lines with numbers

```bash
# egrep -n foo
awk '/foo/{print FNR,$0}' filename
```

###### Print the last column
@@ -3697,6 +3712,55 @@ awk '!x[$0]++' filename
awk '{print $NF}' filename
```

###### Find all the lines longer than 80 characters

```bash
awk 'length($0)>80{print FNR,$0}' filename
```

###### Print only lines of less than 80 characters

```bash
awk 'length < 80 filename
```

###### Print double new lines a file

```bash
awk '1; { print "" }' filename
```

###### Print line numbers

```bash
awk '{ print FNR "\t" $0 }' filename
awk '{ printf("%5d : %s\n", NR, $0) }' filename # in a fancy manner
```

###### Print line numbers for only non-blank lines

```bash
awk 'NF { $0=++a " :" $0 }; { print }' filename
```

###### Print the line and the next two (i=5) lines after the line matching regexp

```bash
awk '/foo/{i=5+1;}{if(i){i--; print;}}' filename
```

###### Print the lines starting at the line matching 'server {' until the line matching '}'

```bash
awk '/server {/,/}/' filename
```

###### Print multiple columns with separators

```bash
awk -F' ' '{print "ip:\t" $2 "\n port:\t" $3' filename
```

###### Remove empty lines

```bash
@@ -3706,10 +3770,29 @@ awk 'NF > 0' filename
awk NF filename
```

###### Print multiple columns with separators
###### Delete trailing white space (spaces, tabs)

```bash
awk -F' ' '{print "ip:\t" $2 "\n port:\t" $3' filename
awk '{sub(/[ \t]*$/, "");print}' filename
```

###### Delete leading white space

```bash
awk '{sub(/^[ \t]+/, ""); print}' filename
```

###### Remove duplicate consecutive lines

```bash
# uniq
awk 'a !~ $0{print}; {a=$0}' filename
```

###### Remove duplicate entries in a file without sorting

```bash
awk '!x[$0]++' filename
```

###### Exclude multiple columns
@@ -3718,6 +3801,18 @@ awk -F' ' '{print "ip:\t" $2 "\n port:\t" $3' filename
awk '{$1=$3=""}1' filename
```

###### Substitute foo for bar on lines matching regexp

```bash
awk '/regexp/{gsub(/foo/, "bar")};{print}' filename
```

###### Add some characters at the beginning of matching lines

```bash
awk '/regexp/{sub(/^/, "++++"); print;next;}{print}' filename
```

###### Get the last hour of Apache logs

```bash
@@ -3729,7 +3824,7 @@ ___

##### Tool: [sed](http://www.grymoire.com/Unix/Sed.html)

###### To print a specific line from a file
###### Print a specific line from a file

```bash
sed -n 10p /path/to/file
@@ -3790,12 +3885,6 @@ grep -RnisI "pattern" *
fgrep "pattern" * -R
```

###### Remove blank lines from a file and save output to new file

```bash
grep . filename > newfilename
```

###### Show only for multiple patterns

```bash
@@ -3832,6 +3921,12 @@ grep -- -- filename
grep "\-\-" filename
```

###### Remove blank lines from a file and save output to new file

```bash
grep . filename > newfilename
```

##### Tool: [perl](https://www.perl.org/)

###### Search and replace (in place)


Caricamento…
Annulla
Salva