User Tools

Site Tools


grep_usage

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
grep_usage [2021/02/22 17:33] rajugrep_usage [2023/09/07 21:03] (current) – [repeat previous character N times] raju
Line 1: Line 1:
 +==== dummy ====
 +  * [[Remove lines with duplicate letters]]
 +  * [[grep on find results]]
 +
 ==== wordscapes ==== ==== wordscapes ====
 +tags | word scape, wordscape
 <code> <code>
 % grep -i "^[slev][slev][slev][slev]s$" /usr/share/dict/american-english  % grep -i "^[slev][slev][slev][slev]s$" /usr/share/dict/american-english 
 elves elves
 sells sells
 +</code>
 +
 +Remove lines with duplicate letters
 +<code>
 + % grep -Ei "^[hikers]{5}$" /usr/share/dict/american-english | grep -Eiv "(.).*\1"
 +...
 +shire
 +shirk
 +skier
 +</code>
 +
 +compare this with
 +<code>
 + % grep -Ei "^[hikers]{5}$" /usr/share/dict/american-english
 +...
 +shire
 +shirk
 +shirr
 +sires
 +sises
 +skier
 +skies
 +</code>
 +
 +which also shows words where some letters are repeated twice.
 +
 +==== repeat previous character N times ====
 +Use (character){N} and call grep with -E
 +
 +<code>
 + % grep -Ei "^[enrich]i([enrich]){2}e$" /usr/share/dict/american-english
 +Circe
 +niche
 +niece
 +</code>
 +
 +is equivalent to
 +<code>
 + % grep -i "^[enrich]i[enrich][enrich]e$" /usr/share/dict/american-english
 +Circe
 +niche
 +niece
 +</code>
 +
 +Another example:
 +<code>
 + % grep -Ei "^([dunes]){2}u([dunes]){2}d$" /usr/share/dict/american-english
 +unused
 +</code>
 +
 +==== print lines with less than a certain number of characters ====
 +To print lines that contain less than N characters
 +<code>
 +grep -Ev ".{N}" data.txt
 +</code>
 +
 +For example:
 +To print lines that contain less then 6 characters
 +<code>
 +grep -Ev ".{6}" data.txt
 +</code>
 +
 +You can also do
 +<code>
 +grep -v "......" data.txt
 +</code>
 +where the . is repeated N times. This is easier to type for small N.
 +
 +Sample run:
 +<code>
 +$ cat data.txt
 +a
 +ab
 +abc
 +abcd
 +abcde
 +abcdef
 +abcdefg
 +
 +$ grep -v "......" data.txt
 +a
 +ab
 +abc
 +abcd
 +abcde
 +
 +$ grep -Ev ".{6}" data.txt
 +a
 +ab
 +abc
 +abcd
 +abcde
 </code> </code>
  
grep_usage.1614015237.txt.gz · Last modified: 2021/02/22 17:33 by raju