Actions

Cours

Différences entre versions de « Manipulation de fichiers avec Bash »

De GBLL, TAL, ALAO, etc.

 
(24 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 32 : Ligne 32 :
 
== Bases de la base ==
 
== Bases de la base ==
 
=== Redirection des entrées/sorties 🔃 ===
 
=== Redirection des entrées/sorties 🔃 ===
*<  :  Lire depuis un fichier d'entrée
+
*{{code|<|bash}} :  Lire depuis un fichier d'entrée
*>  :  Écrire dans un fichier de sortie (crée ou écrase le fichier de sortie)
+
*{{code|>|bash}} :  Écrire dans un fichier de sortie (crée ou écrase le fichier de sortie)
*>>  :  Append à la suite, sans écraser le fichier de sortie
+
*{{code|>>|bash}}   :  Append à la suite, sans écraser le fichier de sortie
*|  :  Rediriger la sortie de la commande précédente vers l'entrée de la commande suivante (pipe)
+
*{{code|{{pipe}}|bash}}   :  Rediriger la sortie de la commande précédente vers l'entrée de la commande suivante (pipe<ref>{{code|Alt gr + 6}} (Linux, Windows) {{code|Alt + l}} (Mac)</ref>)
  
 
=== Commandes basiques de navigation ⛵ ===
 
=== Commandes basiques de navigation ⛵ ===
*pwd  :  Affiche le chemin absolu depuis la racine jusqu'au rép. courant
+
*{{code|pwd|bash}} :  Affiche le chemin absolu depuis la racine jusqu'au rép. courant
 +
*{{code|cd <chemin>|bash}}  :  Aller vers <chemin> (absolu ou relatif à partir du rép. courant)
 +
*:*{{code|cd sousDossier|bash}}  :  Aller dans sousDossier
 +
*:*{{code|cd ..|bash}}  : Aller dans le répertoire parent
 +
*:*{{code|cd /|bash}}  : Aller à la racine de l'ordinateur (sur Windows — gitbash —, il s'agit du dossier où est installé Git)
 +
*:*{{code|cd ~|bash}}  :  Revenir au répertoire Home
  
*cd <chemin>  :  Aller vers <chemin> (absolu ou relatif à partir du rép. courant)
+
*{{code|ls|bash}} :  Liste les fichiers et dossiers présents dans le répertoire courant
*:*cd sousDossier/  :  Aller dans sousDossier
+
*:*{{code|ls -F|bash}} :  idem, liste que les fichiers
*:*cd ../  :  Aller dans le répertoire parent
+
*:*{{code|ls -F /home|bash}} :  Liste les fichiers dans le rép. /home
*:*cd / : Aller à la racine de l'ordinateur (sur Windows, il s'agit du dossier où est installé Git)
+
*:*{{code|ls -a|bash}}   :  Liste également les fichiers et dossiers cachés
*:*cd  :  Revenir au répertoire Home
+
*:*{{code|ls -l|bash}} :  Affiche le détail de chaque élément
 
+
*:*{{code|ls -sh|bash}} :  Affiche la taille
*ls  :  Liste les fichiers et dossiers présents dans le répertoire courant
+
*:*{{code|ls -shS|bash}} :  Affiche la taille et trie par taille  
*:*ls -F  :  idem, liste que les fichiers
+
*:*{{code|ls -R|bash}} :  Récursif : détail le contenu de chaque sous-répertoires
*:*ls -F /home  :  Liste les fichiers dans le rép. /home
 
*:*ls -a  :  Liste également les fichiers et dossiers cachés
 
*:*ls -l  :  Affiche le détail de chaque élément
 
*:*ls -sh  :  Affiche la taille
 
*:*ls -shS  :  Affiche la taille et trie par taille  
 
*:*ls -R  :  Récursif : détail le contenu de chaque sous-répertoires
 
  
 
=== Manipulation de fichiers ===
 
=== Manipulation de fichiers ===
*cat fichier.txt  :  Affiche le contenu du fichier dans le terminal
+
*{{code|cat fichier.txt|bash}} :  Affiche le contenu du fichier dans le terminal
*:*more fichier.txt  :  Afficher le contenu du fichier petit à petit (appuyer sur espace ou entrée pour afficher plus, ctrl+c pour quitter)
+
*:*{{code|more fichier.txt|bash}} :  Afficher le contenu du fichier petit à petit (appuyer sur espace ou entrée pour afficher plus, ctrl+c pour quitter)
*:*head fichier.txt  :  Affiche les 10 premières lignes
+
*:*{{code|head fichier.txt|bash}} :  Affiche les 10 premières lignes
*:*tail fichier.txt  :  Affiche les 10 dernières lignes
+
*:*{{code|tail fichier.txt|bash}} :  Affiche les 10 dernières lignes
*:*head -n 50 fichier.txt  :  Affiche les 50 premières lignes
+
*:*{{code|head -n 50 fichier.txt|bash}} :  Affiche les 50 premières lignes
*:*vim fichier.txt  :  Éditer le fichier.txt avec vim (éditeur en ligne de commande)
+
*:*{{code|vim fichier.txt|bash}} :  Éditer le fichier.txt avec vim (éditeur en ligne de commande)
*:*nano fichier.txt  :  Éditer le fichier.txt avec nano (éditeur en ligne de commande)
+
*:*{{code|nano fichier.txt|bash}} :  Éditer le fichier.txt avec nano (éditeur en ligne de commande)
*:*touch fichier.txt  :  Créer un fichier nommé fichier.txt
+
*:*{{code|touch fichier.txt|bash}} :  Créer un fichier nommé fichier.txt
*:*cp fichier.txt nouveauNom.txt  :  Copie fichier.txt et le renomme en "nouveauNom.txt"
+
*:*{{code|cp fichier.txt nouveauNom.txt|bash}} :  Copie fichier.txt et le renomme en "nouveauNom.txt"
*:*mv fichier.txt nouveauNom.txt  :  Renomme fichier.txt en "nouveauNom.txt"
+
*:*{{code|mv fichier.txt nouveauNom.txt|bash}} :  Renomme fichier.txt en "nouveauNom.txt"
*:*cp fichier.txt sousDossier/  :  Copie fichier.txt dans le répertoire "sousDossier"
+
*:*{{code|cp fichier.txt sousDossier/|bash}} :  Copie fichier.txt dans le répertoire "sousDossier"
*:*mv fichier.txt sousDossier/  :  Déplace fichier.txt vers le répertoire "sousDossier"
+
*:*{{code|mv fichier.txt sousDossier/|bash}} :  Déplace fichier.txt vers le répertoire "sousDossier"
*:*rm fichier.txt  :  Supprime fichier.txt (Attention, pas de passage par la corbeille)
+
*:*{{code|rm fichier.txt|bash}} :  Supprime fichier.txt (Attention, pas de passage par la corbeille)
*:*rm -y fichier.txt  :  Supprime en demandant confirmation
+
*:*{{code|rm -y fichier.txt|bash}} :  Supprime en demandant confirmation
  
 
=== Manipulation de dossiers ===
 
=== Manipulation de dossiers ===
*mkdir nomDossier  :  Crée un nouveau dossier "nomDossier"
+
*{{code|mkdir nomDossier|bash}} :  Crée un nouveau dossier "nomDossier"
*cp -R nomDossier ../  :  Copie le dossier nomDossier dans le répertoire parent
+
*{{code|cp -R nomDossier ../|bash}} :  Copie le dossier nomDossier dans le répertoire parent
*mv -R nomDossier ../  :  Déplace le dossier nomDossier dans le répertoire parent
+
*{{code|mv -R nomDossier ../|bash}} :  Déplace le dossier nomDossier dans le répertoire parent
*rm -R nomDossier  :  Supprime le dossier nomDossier
+
*{{code|rm -R nomDossier|bash}} :  Supprime le dossier nomDossier
 
 
  
 
== Analyses et manipulations un peu plus avancées ==
 
== Analyses et manipulations un peu plus avancées ==
 
=== Comptage ===
 
=== Comptage ===
*wc fichier.txt :  Affiche le nombre de lignes, nombe de mots et nombre de caractères de fichiers.txt
+
* {{code|wc fichier.txt|bash}} :  Affiche le nombre de lignes, nombe de mots et nombre de caractères de fichiers.txt
*:*wc *.txt :  Affiche les infos pour chaque fichier .txt
+
*:* {{code|wc *.txt|bash}} :  Affiche les infos pour chaque fichier .txt
*:*wc -l fichier.txt :  Affiche que le nombre de lignes
+
*:* {{code|wc -l fichier.txt|bash}} :  Affiche que le nombre de lignes
*:*wc -w :  Affiche que le nombre de mots
+
*:* {{code|wc -w|bash}} :  Affiche que le nombre de mots
*:*wc *.txt > monFichier.txt :  Enregistre l'output de wc dans monFichier.txt
+
*:* {{code|wc *.txt > monFichier.txt|bash}} :  Enregistre l'output de wc dans monFichier.txt (💩?)
*:*ls -l monDossier | wc -l :  Compte les fichiers dans le répertoire monDossier
+
*:* {{code|ls -l monDossier {{pipe}} wc -l|bash}} :  Compte les fichiers dans le répertoire monDossier
  
 
=== Tri ===
 
=== Tri ===
*sort monFichier.txt :  Tri les lignes alphabétiquement
+
* {{code|sort monFichier.txt|bash}} :  Tri les lignes alphabétiquement
*:*sort -n monFichier.txt :  Tri numériquement
+
*:* {{code|sort -n monFichier.txt|bash}} :  Tri numériquement
*:*sort -nr monFichier.txt :  Ordre numérique inversé
+
*:* {{code|sort -nr monFichier.txt|bash}} :  Ordre numérique inversé
*:*sort -d monFichier.txt :  Tri dictionnarique
+
*:* {{code|sort -d monFichier.txt|bash}} :  Tri dictionnarique
*:*sort -f monFichier.txt :  Tri en ignorant la casse (majuscules/minuscules)
+
*:* {{code|sort -f monFichier.txt|bash}} :  Tri en ignorant la casse (majuscules/minuscules)
*:*sort -k 1 monTableau.csv :  Tri sur la colonne 1 (la première est 0)
+
*:* {{code|sort -k 1 monTableau.csv|bash}} :  Tri sur la colonne 1 (la première est 0)
*:*sort -k 1.5 monTableau.csv :  Tri sur le 5ème caractère de la colonne 1
+
*:* {{code|sort -k 1.5 monTableau.csv|bash}} :  Tri sur le 5ème caractère de la colonne 1
 +
*:* {{code|sort -n monFichier.txt {{pipe}} head -n 1|bash}} :  Tri numériquement et affiche la première ligne
 +
 
 +
=== Manipulation de texte ===
 +
* {{code|cat texte.txt|bash}} :  Affiche le contenu de texte.txt
 +
* {{code|cat texte.txt {{pipe}} tr [a-z]éèàç [A-Z]ÉÈÀÇ|bash}} :  Passe tout le contenu en majuscules
 +
* {{code|cat texte.txt {{pipe}} tr '''\n'|bash}} :  Remplace toutes les espaces par des sauts de ligne (pour afficher un mot par ligne)
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} sort|bash}} :  Fait la même chose puis tri les mots
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} sort {{pipe}} uniq|bash}} :  ...puis supprime les doublons dans la liste de mots
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} sort {{pipe}} uniq -c|bash}} :  ...supprime les doublons et compte leur fréquence
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} sort {{pipe}} uniq -d|bash}} :  ...affiche les doublons uniquement
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} sort {{pipe}} uniq -u|bash}} :  ...affiche les hapax uniquement
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} sort {{pipe}} uniq -c {{pipe}} grep "saucisson"|bash}} :  ...recherche le mot "saucisson" dans la liste des mots du texte
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} sort {{pipe}} uniq -c {{pipe}} sort -n|bash}} :  ...tri la liste de mots par fréquence
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} sort {{pipe}} uniq -c {{pipe}} sort -nr|bash}} :  ...tri la liste de mots par fréquence inverse
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} rev {{pipe}} sort {{pipe}} uniq -c|bash}} :  remplace les espaces par des sauts de ligne, puis renverse les mots, pour chercher les rimes et en fait une liste ordonnée  avec fréquence
 +
* {{code|cat texte.txt {{pipe}} tr '''\n' {{pipe}} rev {{pipe}} sort {{pipe}} rev {{pipe}} uniq -c|bash}} :  fait une liste des mots ordonnée par rime
 +
 
 +
=== Concaténation de fichiers ===
 +
* {{code|cat file1.csv file2.csv > file3.csv|bash}} :  Concatène verticale (file2 à la suite de file1) dans un nouveau fichier file3
 +
* {{code|paste file1.csv file2.csv > file3.csv|bash}} :  Concaténation horizontale (colonnes de file2 à la suite des colonnes de file1)
 +
* {{code|pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf|bash}} : merger des fichiers pdf
 +
 
 +
=== Manipulation d'audio ===
 +
{{encart|nécessite le package ffmpeg :
 +
* https://www.tophebergeur.com/blog/comment-installer-ffmpeg-sous-linux-et-ses-distributions/
 +
* https://manual.audacityteam.org/man/installing_ffmpeg_for_windows.html}}
 +
* {{code|ffmpeg -i filename.wav newfilename.mp3|bash}} : conversion d'un fichier wav en mp3.
 +
** {{code|ffmpeg -i filename.wav -ar 44100 newfilename.mp3|bash}} : conversion d'un fichier .wav en .mp3 avec rééchantillonnage à 44.1kHz
 +
** {{code|ffmpeg -i filename.wav -b:a 320k newfilename.mp3|bash}} : conversion d'un fichier .wav en .mp3 en forçant le [[wfr:bitrate|bitrate]] à 320kb/s
 +
** <pre>ffmpeg -i input.wav -filter:a "volume=0.5" output.wav</pre> : baisser le volume de l'audio de 50% ([https://trac.ffmpeg.org/wiki/AudioVolume plus d'options ici])
 +
 
 +
=== Manipulation de photos ===
 +
{{encart|nécessite le package imagemagick (sudo apt install imagemagick)}}
 +
** {{code|convert old_image -resize 50% new_image|bash}} : Réduire une photo de 50%.
 +
** {{code|convert image_name.jpg image_name.png|bash}} : Convertir le format d'une image.
 +
 
 +
=== Manipulation de vidéo ===
 +
* {{code|ffmpeg -i video_lourde.mp4 -vcodec h264 -acodec aac video_compresse.mp4|bash}} : compression vidéo (codec vidéo h264, audio AAC)
 +
* {{code|ffmpeg -i test.mp4 -c:v libvpx -crf 15 -b:v 1M -c:a libvorbis test.webm|bash}} : conversion vers webm
 +
* {{code|ffmpeg -i 'zoom séance 1 24.11.20 bis.mp4' -map a zoomAudio.wav|bash}} : extraction de l'audio d'une vidéo (format de sortie: wav)
 +
 
 +
=== Boucle sur plusieurs fichiers ===
 +
* {{code|for f in *.txt; do head -n 1 $f; done|bash}} : boucle sur tous les fichiers .txt du dossier courant, et on affiche juste la première ligne de chaque.
 +
* {{code|for f in *.txt; do echo $f; head -n 1 $f; done|bash}} : pareil mais on affiche le nom du fichier avant.
 +
* {{code|for f in audio/*.wav; do python wav2param.py $f; done|bash}} : lance un script python (wav2param.py) sur chaque fichier .wav du dossier audio/
 +
* {{code|for f in *; ffmpeg -i $f $f.mp3; done|bash}} : convertit tous les fichiers du dossier en mp3.
 +
 
 +
=== Manipulation de PDF ===
 +
* {{code|pdfunite coucou.pdf mimi.pdf boubou.pdf output.pdf|bash}} : merger les fichiers pdf coucou mimi et boubou en un seul fichier output.pdf
 +
* {{code|pdftk input.pdf cat 1 5 10-12 output output.pdf|bash}} : spliter un pdf et récupérer seulement les pages 1, 5 et 10 à 12
 +
* {{code|pdftotext input.pdf output.txt|bash}} : extraction texte du contenu d'un pdf
 +
* {{code|pdftotext -enc ASCII7 input.pdf output.txt|bash}} : extraction du contenu d'un pdf (2)
 +
* {{code|lowriter --convert-to pdf fichier.docx|bash}} : convertir un docx en pdf
 +
 
 +
=== Autres commandes pratiques ===
 +
* {{code|rename 's/ /_/g' *|bash}} : remplace les espaces par des underscores dans les noms de fichiers
 +
 
  
 
[[Catégorie:Mémo_technique]]
 
[[Catégorie:Mémo_technique]]

Version actuelle datée du 14 septembre 2022 à 14:16

Cette page a pour objectif de vous présenter quelques commandes bash pour manipuler des fichiers et du texte sur votre ordinateur.

Installation de Bash

  • Si vous êtes sur Windows, vous avez plusieurs 2 possibilités :
    • Installer Bash For Windows, le plus simple pour une utilisation limitée, typiquement Git en ligne de commande.
    • Activer le terminal Linux/Bash natif de Windows10, qui vous permettra d'utiliser la plupart des commandes Linux.
  • Si vous êtes sur Mac, il suffit d'ouvrir votre terminal.
  • Si vous êtes sur Linux, il suffit d'ouvrir votre terminal.


Quelques tutos pouvant aider :


Ouvrir le terminal Bash

(parmi de nombreuses façons d'ouvrir votre terminal)

  • WINDOWS avec Git Bash : Dans le dossier de votre choix, clic droit puis Git Bash Here ;
  • Linux : ctrl+alt+t, ou dans un dossier clic droit puis ouvrir dans un terminal ;
  • Mac : entrez "terminal" dans le dock.

Certaines commandes présentées sur cette page sont susceptibles de ne pas fonctionner avec Bash For Windows (qui est un peu limité).

D'autres tuto :

Bases de la base

Redirection des entrées/sorties 🔃

  • < : Lire depuis un fichier d'entrée
  • > : Écrire dans un fichier de sortie (crée ou écrase le fichier de sortie)
  • >> : Append à la suite, sans écraser le fichier de sortie
  • | : Rediriger la sortie de la commande précédente vers l'entrée de la commande suivante (pipe[1])

Commandes basiques de navigation ⛵

  • pwd : Affiche le chemin absolu depuis la racine jusqu'au rép. courant
  • cd <chemin> : Aller vers <chemin> (absolu ou relatif à partir du rép. courant)
    • cd sousDossier : Aller dans sousDossier
    • cd .. : Aller dans le répertoire parent
    • cd / : Aller à la racine de l'ordinateur (sur Windows — gitbash —, il s'agit du dossier où est installé Git)
    • cd ~ : Revenir au répertoire Home
  • ls : Liste les fichiers et dossiers présents dans le répertoire courant
    • ls -F : idem, liste que les fichiers
    • ls -F /home : Liste les fichiers dans le rép. /home
    • ls -a : Liste également les fichiers et dossiers cachés
    • ls -l : Affiche le détail de chaque élément
    • ls -sh : Affiche la taille
    • ls -shS : Affiche la taille et trie par taille
    • ls -R : Récursif : détail le contenu de chaque sous-répertoires

Manipulation de fichiers

  • cat fichier.txt : Affiche le contenu du fichier dans le terminal
    • more fichier.txt : Afficher le contenu du fichier petit à petit (appuyer sur espace ou entrée pour afficher plus, ctrl+c pour quitter)
    • head fichier.txt : Affiche les 10 premières lignes
    • tail fichier.txt : Affiche les 10 dernières lignes
    • head -n 50 fichier.txt : Affiche les 50 premières lignes
    • vim fichier.txt : Éditer le fichier.txt avec vim (éditeur en ligne de commande)
    • nano fichier.txt : Éditer le fichier.txt avec nano (éditeur en ligne de commande)
    • touch fichier.txt : Créer un fichier nommé fichier.txt
    • cp fichier.txt nouveauNom.txt : Copie fichier.txt et le renomme en "nouveauNom.txt"
    • mv fichier.txt nouveauNom.txt : Renomme fichier.txt en "nouveauNom.txt"
    • cp fichier.txt sousDossier/ : Copie fichier.txt dans le répertoire "sousDossier"
    • mv fichier.txt sousDossier/ : Déplace fichier.txt vers le répertoire "sousDossier"
    • rm fichier.txt : Supprime fichier.txt (Attention, pas de passage par la corbeille)
    • rm -y fichier.txt : Supprime en demandant confirmation

Manipulation de dossiers

  • mkdir nomDossier : Crée un nouveau dossier "nomDossier"
  • cp -R nomDossier ../ : Copie le dossier nomDossier dans le répertoire parent
  • mv -R nomDossier ../ : Déplace le dossier nomDossier dans le répertoire parent
  • rm -R nomDossier : Supprime le dossier nomDossier

Analyses et manipulations un peu plus avancées

Comptage

  • wc fichier.txt : Affiche le nombre de lignes, nombe de mots et nombre de caractères de fichiers.txt
    • wc *.txt : Affiche les infos pour chaque fichier .txt
    • wc -l fichier.txt : Affiche que le nombre de lignes
    • wc -w : Affiche que le nombre de mots
    • wc *.txt > monFichier.txt : Enregistre l'output de wc dans monFichier.txt (💩?)
    • ls -l monDossier | wc -l : Compte les fichiers dans le répertoire monDossier

Tri

  • sort monFichier.txt : Tri les lignes alphabétiquement
    • sort -n monFichier.txt : Tri numériquement
    • sort -nr monFichier.txt : Ordre numérique inversé
    • sort -d monFichier.txt : Tri dictionnarique
    • sort -f monFichier.txt : Tri en ignorant la casse (majuscules/minuscules)
    • sort -k 1 monTableau.csv : Tri sur la colonne 1 (la première est 0)
    • sort -k 1.5 monTableau.csv : Tri sur le 5ème caractère de la colonne 1
    • sort -n monFichier.txt | head -n 1 : Tri numériquement et affiche la première ligne

Manipulation de texte

  • cat texte.txt : Affiche le contenu de texte.txt
  • cat texte.txt | tr [a-z]éèàç [A-Z]ÉÈÀÇ : Passe tout le contenu en majuscules
  • cat texte.txt | tr '''\n' : Remplace toutes les espaces par des sauts de ligne (pour afficher un mot par ligne)
  • cat texte.txt | tr '''\n' | sort : Fait la même chose puis tri les mots
  • cat texte.txt | tr '''\n' | sort | uniq : ...puis supprime les doublons dans la liste de mots
  • cat texte.txt | tr '''\n' | sort | uniq -c : ...supprime les doublons et compte leur fréquence
  • cat texte.txt | tr '''\n' | sort | uniq -d : ...affiche les doublons uniquement
  • cat texte.txt | tr '''\n' | sort | uniq -u : ...affiche les hapax uniquement
  • cat texte.txt | tr '''\n' | sort | uniq -c | grep "saucisson" : ...recherche le mot "saucisson" dans la liste des mots du texte
  • cat texte.txt | tr '''\n' | sort | uniq -c | sort -n : ...tri la liste de mots par fréquence
  • cat texte.txt | tr '''\n' | sort | uniq -c | sort -nr : ...tri la liste de mots par fréquence inverse
  • cat texte.txt | tr '''\n' | rev | sort | uniq -c : remplace les espaces par des sauts de ligne, puis renverse les mots, pour chercher les rimes et en fait une liste ordonnée avec fréquence
  • cat texte.txt | tr '''\n' | rev | sort | rev | uniq -c : fait une liste des mots ordonnée par rime

Concaténation de fichiers

  • cat file1.csv file2.csv > file3.csv : Concatène verticale (file2 à la suite de file1) dans un nouveau fichier file3
  • paste file1.csv file2.csv > file3.csv : Concaténation horizontale (colonnes de file2 à la suite des colonnes de file1)
  • pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf : merger des fichiers pdf

Manipulation d'audio

  • ffmpeg -i filename.wav newfilename.mp3 : conversion d'un fichier wav en mp3.
    • ffmpeg -i filename.wav -ar 44100 newfilename.mp3 : conversion d'un fichier .wav en .mp3 avec rééchantillonnage à 44.1kHz
    • ffmpeg -i filename.wav -b:a 320k newfilename.mp3 : conversion d'un fichier .wav en .mp3 en forçant le bitrate à 320kb/s
    • ffmpeg -i input.wav -filter:a "volume=0.5" output.wav
       : baisser le volume de l'audio de 50% (plus d'options ici)

Manipulation de photos

nécessite le package imagemagick (sudo apt install imagemagick)

    • convert old_image -resize 50% new_image : Réduire une photo de 50%.
    • convert image_name.jpg image_name.png : Convertir le format d'une image.

Manipulation de vidéo

  • ffmpeg -i video_lourde.mp4 -vcodec h264 -acodec aac video_compresse.mp4 : compression vidéo (codec vidéo h264, audio AAC)
  • ffmpeg -i test.mp4 -c:v libvpx -crf 15 -b:v 1M -c:a libvorbis test.webm : conversion vers webm
  • ffmpeg -i 'zoom séance 1 24.11.20 bis.mp4' -map a zoomAudio.wav : extraction de l'audio d'une vidéo (format de sortie: wav)

Boucle sur plusieurs fichiers

  • for f in *.txt; do head -n 1 $f; done : boucle sur tous les fichiers .txt du dossier courant, et on affiche juste la première ligne de chaque.
  • for f in *.txt; do echo $f; head -n 1 $f; done : pareil mais on affiche le nom du fichier avant.
  • for f in audio/*.wav; do python wav2param.py $f; done : lance un script python (wav2param.py) sur chaque fichier .wav du dossier audio/
  • for f in *; ffmpeg -i $f $f.mp3; done : convertit tous les fichiers du dossier en mp3.

Manipulation de PDF

  • pdfunite coucou.pdf mimi.pdf boubou.pdf output.pdf : merger les fichiers pdf coucou mimi et boubou en un seul fichier output.pdf
  • pdftk input.pdf cat 1 5 10-12 output output.pdf : spliter un pdf et récupérer seulement les pages 1, 5 et 10 à 12
  • pdftotext input.pdf output.txt : extraction texte du contenu d'un pdf
  • pdftotext -enc ASCII7 input.pdf output.txt : extraction du contenu d'un pdf (2)
  • lowriter --convert-to pdf fichier.docx : convertir un docx en pdf

Autres commandes pratiques

  • rename 's/ /_/g' * : remplace les espaces par des underscores dans les noms de fichiers
  1. Alt gr + 6 (Linux, Windows) Alt + l (Mac)