Skip to main content

bash

Find lines in big files

Get all lines in a big file containing some text:

cat filename  | egrep "141.71.45.20|159.205.92.236|171.33.185.210|"

Thanks to Günter!

Find files NOT of type

find . -type f -not -iname "*.jpg" -not -iname "*.jpeg" -not -iname "*.gif" -not -iname "*.png" -not -iname "*.pdf"

Useful!

Split files on lines

Split the file into multiple files at every 3rd line . i.e, First 3 lines into F1, next 3 lines into F2 and so on:

$ awk 'NR%3==1{x="F"++i;}{print > x}' filename

SCP syntax

Useful to copy directories from one server to another:

cd into the dir you want to have your data

scp -prq username@127.0.0.1:/var/www/comefromdir/ .

Batch replace text in big files

For example: Change Collation in a big database dump.

cat dumpname | sed s/CHARSET=utf8/CHARSET=utf8\ COLLATE=utf8_unicode_ci/ > neuer_dumpname

Batch resize images on Ubuntu

  • Install imagemagick
  • Create newdir and copy images to be resized into it
  • cd into newdir

mogrify -format jpg -resize "800x500>" *