PHPSymfony - Blog par un programmeur pour les programmeurs

To content | To menu | To search

Wednesday, July 13 2011

[Bash] Remplacement de caractères de retour à la ligne par des espaces

Supposons que vous ayez la liste suivante :

gbretou@gunix:~$ cat test.txt
aaa
bbb
ccc
ddd

Et que vous voulez un résultat sur une ligne, vous pouvez utiliser tr pour convertir vos sauts de ligne en espace simple.

gbretou@gunix:~$ cat test.txt | tr '
' ' '
aaa bbb ccc ddd ati@gm21:~$

Si vous avez un svn st long comme le bras et que vous commitez en ligne de commande :

svn st | sed 's/^[AM]//g' | tr '
' ' ' | xargs svn ci -m'My super fun commit message'

Si vous voulez éviter des fichiers, pensez au grep -v après le svn st ;)

Monday, August 9 2010

[BASH] Renommer des fichiers avec find et xargs

Un post rapide pour mon retour de vacances :

Voici une petite commande si vous voulez ajouter l'extension .old à un certain type de fichier en utilisant find :

find . -name '*.swf' -exec mv {} {}.old \;


Le code ci-dessus vous permettra d'ajouter '.old' à chaque fichier dont le nom se termine par '.swf'.

Je me suis posé la même question pour une utilisation de find et xargs. Et j'ai obtenu ceci :

find . -name "*.swf" -print0 | xargs -t -0 -I {} mv {} {}.old

Ce qui produit le même résultat.
L'option -t de xargs est juste utilisée pour le rendre verbeux.