Commandes diverses: Difference between revisions
No edit summary |
No edit summary |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 35: | Line 35: | ||
=tar avec SSH= | =tar avec SSH= | ||
tar jcvf - directory | ssh user@host "cat > directory.tar.bz2" | tar jcvf - directory | ssh user@host "cat > directory.tar.bz2" | ||
=Effacer une ligne dans un fichier= | =Effacer une ligne dans un fichier= | ||
| Line 44: | Line 41: | ||
for f in *.{c,h}; do sed -i '/#include "header.h"/d' ${f} ;done | 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.