Bases de Linux et de la ligne de commande

$ echo "aaa bab" | sed 's/a/x/'

Quelle est la sortie de la commande sed ci-dessus, qui remplace des caractères ?

  1. Axaa bab
  2. Bxaa bxb
  3. Cxxx bxb
Afficher la réponse et l'explication

Réponse : A. xaa bab

s/avant/après/ de sed ne remplace que la première occurrence trouvée sur chaque ligne. Le premier a de cette ligne est son premier caractère : la sortie est donc xaa bab. Pour remplacer toutes les occurrences de la ligne, on ajoute g (global) à la fin, comme dans s/a/x/g, ce qui donne xxx bxb. Le remplacement se fait ligne par ligne : si un fichier compte plusieurs lignes, la première occurrence de chaque ligne est remplacée, même sans g.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de Linux et de la ligne de commande

  1. Dans la session ci-dessus, qu'affiche le dernier awk ?
  2. Quelle description des fichiers trouvés en exécutant « find /data -name "*.log" -mtime +7 -size +100M » avec le find de GNU est correcte ?
  3. Pour arrêter un processus qui ne répond plus, il est conseillé d'utiliser d'abord « kill <ID du processus> », et de n'utiliser « kill -9 <ID du processus> » que si cela ne suffit pas à le terminer. Quelle en est la raison ?
  4. Pendant qu'un long ./sim.sh s'exécute dans un terminal, on veut utiliser d'autres commandes dans le même terminal. Que se passe-t-il si l'on appuie sur Ctrl+Z, puis qu'on exécute bg ?
  5. Sur un serveur auquel on s'est connecté par SSH, on a lancé un long traitement avec « ./run.sh & », puis, en fermant la connexion, le traitement s'est arrêté lui aussi. Quelle est la manière la plus appropriée de le lancer pour qu'il continue après la fermeture de la connexion ?