Table des matières
6. Remplacez les deux premiers KFC de chaque ligne par CPU
7. Remplacez le premier HBW de la deuxième ligne par MDL
9. Ajoutez du poulet au début de la première ligne (le symbole ^ représente le début de la ligne)
10. Ajouter beau à la fin de la première ligne (le symbole $ représente la fin de la ligne)
1. Créez un fichier txt
vi huawei.txt
2. Remplacez le premier huawei de chaque ligne par apple, et après le troisième "/", si aucun paramètre n'est ajouté, seul le premier sera remplacé
sed -i "s/huawei/apple/" huawei.txt
Réalisez l'effet:
3. Remplacez tous les xiaomi dans chaque ligne par iphone, après le troisième "/", ajoutez le paramètre g pour remplacer tous
sed -i "s/xiaomi/iphone/g" huawei.txt
Réalisez l'effet:
4. Remplacez le deuxième redmi dans chaque ligne par potato, après le troisième "/", ajoutez le paramètre 2 pour remplacer le deuxième
sed -i "s/redmi/potato/2"
5. Remplacez le second mat par le dernier mat de chaque ligne par pico, après le troisième "/", ajoutez le paramètre 2g pour remplacer l'avant-dernier
sed -i "s/mate/pico/2g"
6. Remplacez les deux premiers KFC de chaque ligne par CPU
sed -i "s/KFC/CPU/"
sed -i "s/KFC/CPU/"
Remplacez d'abord la première, à ce moment la deuxième chaîne d'origine devient la première dans l'ordre, puis remplacez-la à nouveau
(La portée des opérations ci-dessus est pour chaque ligne. Ensuite, nous filtrerons précisément la ligne spécifique ou les premières lignes qui doivent être modifiées. Pour la commodité de la démonstration, nous ne changeons que la première chaîne de la ligne spécifique. Cela c'est-à-dire, n'ajoutez pas "g")
7. Remplacez le premier HBW de la deuxième ligne par MDL
sed -i "2s/HBW/MDL/" HBW.txt
8. Remplacez HBW de la deuxième à la dernière ligne par MDL (le symbole $ signifie la dernière ligne, si vous écrivez un nombre, cela signifie la droite numérique)
sed -i '2,$s/HBW/MDL/' HBW.txt
Notez que lorsqu'une virgule "," est utilisée dans une instruction, des guillemets simples doivent être utilisés en dehors de l'instruction
(Ce qui précède sont tous des remplacements pour la chaîne spécifique elle-même, puis nous modifions le début ou la fin de la ligne).
9. Ajoutez du poulet au début de la première ligne (le symbole ^ représente le début de la ligne)
sed -i '1s/^/poulet/' ktv.txt
10. Ajouter beau à la fin de la première ligne (le symbole $ représente la fin de la ligne)
sed -i '1s/$/belle/' ktv.txt
(Après avoir utilisé la commande sed -i pour modifier directement le fichier, que dois-je faire si je le regrette ? Vous pouvez ajouter le paramètre -i.bak, et une sauvegarde sera créée lors de la modification)
11. Ajoutez chicken au début de chaque ligne et créez un fichier de sauvegarde en même temps (fichiers de sauvegarde qui n'ont pas été écrits sur chicken)
sed -i.bak 's/^/poulet/' aaa.txt
12. Plusieurs actions de remplacement peuvent être exécutées ensemble en les séparant par des points-virgules ;
En même temps, ajoutez top au début de toutes les lignes et ajoutez bottom à la fin de toutes les lignes (notez que le paramètre -i n'est pas appelé et que le résultat de la modification ne sera pas écrit dans le fichier
sed 's/^/top/;s/$/bottom/' aaa.txt
Treize, si la chaîne à remplacer contient des guillemets simples ', alors utilisez des guillemets doubles pour entourer les paramètres
Remplacez n'a dans chaque ligne par na, (notez que le paramètre -i n'est pas utilisé par commodité et que le résultat de la modification ne sera pas écrit dans le fichier)
sed "s/n'a/na/" aaa.txt
14. La barre oblique/ elle-même est utilisée comme séparateur dans l'instruction sed, mais si la chaîne à remplacer contient également une barre oblique/, vous pouvez utiliser le signe dièse # comme séparateur (vous pouvez également utiliser un point d'interrogation ?)
Remplacez n/a par na, (le paramètre -i n'est pas appelé, le résultat de la modification ne sera pas écrit dans le fichier)
sed "s#n/a#na#" aaa.txt
sed "s?n/a?na?" aaa.txt
Compréhension : La commodité de sed est que vous pouvez rapidement localiser et modifier un certain mot-clé dans le contenu du document (vous connaissez la chaîne), mais il est difficile d'utiliser directement sed pour résoudre la chaîne inconnue. Par exemple, dans le livre des mots de passe, je souhaite remplacer tous les mots de passe, mais ce sont toutes des chaînes aléatoires. Si le contenu du fichier est "mot de passe : 12345678 ; mot de passe : 22345678 ;...", alors je ne peux localiser que "mot de passe :" et ";", comment continuer à remplacer le "12345678" non corrigé reste à étudier