Commandes diverses: Difference between revisions

From hugovil.com
Jump to navigationJump to search
Created page with "=Affichage des fichiers avec majuscule en premier= set LC_COLLATE=C =How to do a search and replace over multiple files?= You could use find and sed, but I find that this little line of perl works nicely: <nowiki>perl -pi -w -e 's/search/replace/g;' *.php</nowiki> -e means execute the following line of code. -i means edit in-place -w write warnings -p loop Example I had the following style sheet in a section: <nowiki><link rel="stylesheet" type="tex..."
 
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 23: Line 23:
So the final line of code ends up as
So the final line of code ends up as
   <nowiki>perl -pi -w -e 's/\.\.\/includes\/style\.css/admin\.css/g;' *.php</nowiki>
   <nowiki>perl -pi -w -e 's/\.\.\/includes\/style\.css/admin\.css/g;' *.php</nowiki>
=Supprimer un "/" à la fin=
DIR="/usr/local/bin/"
echo ${DIR%/}
=Effacer plusieurs fichiers avec find=
find . -name .svn -exec rm -rf {} \;
=tar avec SSH=
  tar jcvf - directory | ssh user@host "cat > directory.tar.bz2"
=Effacer une ligne dans un fichier=
  sed -i -e '/#include "header.h"/d' main.c
  for f in *.{c,h}; do sed -i '/#include "header.h"/d' ${f} ;done
=Comment synchroniser deux répertoires=
Le répertoire dest va devenir un miroir de src:
  $> rsync -av --delete src/* dest
=Pour capturer les données sur le réseau=
  <nowiki>tcpdump -X -n -t -s 0 src 192.168.0.45</nowiki>
=Recherche dans un répertoire de Subversion=
==grep==
Utiliser cette commande pour avoir la colorisation avec les pipes, et pour ne pas afficher les résultats contenant le texte 'svn':
  grep -rn --color=always -e STRING * | grep -v svn | less -R
Cette version est plus efficace car elle élimine la recherche dans les répertoires '.svn':
  grep --color=always -rn STRING $(find . -type f | grep -v '\.svn') | less -R
Encore mieux: 'less' quitte si le texte peut être affiché entièrement à l'écran:
  grep --color=always -rn STRING $(find . -type f | grep -v '\.svn') | less -RF
Encore encore mieux: 'less' n'efface pas l'écran:
  grep --color=always -rn STRING $(find . -type f | grep -v '\.svn') | less -RFX
==ack==
Alternative à grep:
  http://betterthangrep.com/
Exemple:
  ack STRING --pager="less -RFX"
ack est intéressant car recherche les répertoires récursivement par défaut et ignore les répertoires '.svn', 'CVS' et autres similaires.

Latest revision as of 20:00, 2 April 2026

Affichage des fichiers avec majuscule en premier

 set LC_COLLATE=C

How to do a search and replace over multiple files?

You could use find and sed, but I find that this little line of perl works nicely:

   perl -pi -w -e 's/search/replace/g;' *.php 
 -e means execute the following line of code.
 -i means edit in-place
 -w write warnings
 -p loop

Example I had the following style sheet in a section:

 <link rel="stylesheet" type="text/css" href="../includes/style.css">

and I wanted the following instead:

 <link rel="stylesheet" type="text/css" href="admin.css">

As each expression is a regular expression you've got to escape the special characters such as forward slash and .

 \.\.\/includes\/style\.css

So the final line of code ends up as

 perl -pi -w -e 's/\.\.\/includes\/style\.css/admin\.css/g;' *.php

Supprimer un "/" à la fin

DIR="/usr/local/bin/"
echo ${DIR%/}

Effacer plusieurs fichiers avec find

find . -name .svn -exec rm -rf {} \;

tar avec SSH

 tar jcvf - directory | ssh user@host "cat > directory.tar.bz2"

Effacer une ligne dans un fichier

 sed -i -e '/#include "header.h"/d' main.c
 for f in *.{c,h}; do sed -i '/#include "header.h"/d' ${f} ;done

Comment synchroniser deux répertoires

Le répertoire dest va devenir un miroir de src:

 $> rsync -av --delete src/* dest


Pour capturer les données sur le réseau

 tcpdump -X -n -t -s 0 src 192.168.0.45

Recherche dans un répertoire de Subversion

grep

Utiliser cette commande pour avoir la colorisation avec les pipes, et pour ne pas afficher les résultats contenant le texte 'svn':

 grep -rn --color=always -e STRING * | grep -v svn | less -R

Cette version est plus efficace car elle élimine la recherche dans les répertoires '.svn':

 grep --color=always -rn STRING $(find . -type f | grep -v '\.svn') | less -R

Encore mieux: 'less' quitte si le texte peut être affiché entièrement à l'écran:

 grep --color=always -rn STRING $(find . -type f | grep -v '\.svn') | less -RF

Encore encore mieux: 'less' n'efface pas l'écran:

 grep --color=always -rn STRING $(find . -type f | grep -v '\.svn') | less -RFX

ack

Alternative à grep:

 http://betterthangrep.com/

Exemple:

 ack STRING --pager="less -RFX"

ack est intéressant car recherche les répertoires récursivement par défaut et ignore les répertoires '.svn', 'CVS' et autres similaires.