La commande sed remplace la chaîne spécifiée dans le fichier

Table des matières

1. Créez un fichier 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é

3. Remplacez tous les xiaomi dans chaque ligne par iphone, après le troisième "/", ajoutez le paramètre g pour remplacer tous

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

 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

6. Remplacez les deux premiers KFC de chaque ligne par CPU

7. Remplacez le premier HBW de la deuxième ligne par MDL

 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)

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)

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)

 12. Plusieurs actions de remplacement peuvent être exécutées ensemble en les séparant par des points-virgules ;

Treize, si la chaîne à remplacer contient des guillemets simples ', alors utilisez des guillemets doubles pour entourer les paramètres

 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 ?)


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

Je suppose que tu aimes

Origine blog.csdn.net/LiZhen314/article/details/131104197
conseillé
Classement