Text, Date & Document processing commands

  • Text replacement:
    sed 's/string to replace/replacement string/g' original-file.txt > new-file.txt
    
  • Replace all occurrences of str1 by str2 in all files below the /folder path:
    find /folder -xdev -type f -print -exec sed -i 's/str1/str2/g' "{}" \;
    
  • Same as above but ignore all content of .svn folders and .zip files:
    find /folder -xdev -type f -not -regex ".*\/\.svn\/.*" -not -iname "*\.zip" -print -exec sed -i 's/str1/str2/g' "{}" \;
    
  • In place charset transcoding:
    recode utf-8..latin-1 utf8text.txt
    
  • Remove all accented characters in a string (thanks to Matthieu for the tip):
    echo "éÈça-$" | iconv -t ASCII//translit
    
  • Get the date of last week:
    date +"%Y-%m-%d" -d last-week
    
  • Get the current date in english:
    env LC_TIME=en date +"%a %b %d %Y"
    
  • Get the number of seconds since epoch:
    date +%s
    
  • Convert back epoch time to human-readable date:
    date --date=@1234567890
    
  • Merge 2 PDF documents:
    pdftk doc1.pdf doc2.pdf cat output newdoc.pdf
    
  • Same as above, but for all PDFs of the current folder. This also have the nice side effect of removing all DRMs :) :
    gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=bigfile.pdf ./*
    
  • VIM: no autoindent on paste.
  • a list of sed one-liners.