La commande sed est largement utilisée et facile à utiliser. C'est un outil puissant pour un traitement de texte rapide. En fait, il n’a pas beaucoup de compétences. La mémoriser et l’utiliser sont les canaux d’apprentissage les plus appropriés, et c’est une compétence difficile. Mais c'est compliqué car il y a tellement de fonctionnalités avancées. Cet article ne se concentre pas sur les fonctions avancées de sed, mais explique uniquement certaines opérations couramment utilisées.
Au fur et à mesure que vous l'utilisez, vous constaterez qu'il est cohérent avec certains concepts de vim. La syntaxe des expressions régulières est fondamentalement la même et il n'y a pas beaucoup de coûts d'apprentissage. Du point de vue de la vision personnelle et de l'efficacité du travail, la commande sed est un outil important que les programmeurs doivent maîtriser.
Ceux qui disent pouvoir utiliser Google sur place sont pour la plupart habitués à copier le texte dans Excel, à travailler lentement dessus, et ils sont encore plus confus lorsqu'ils rencontrent un grand nombre de fichiers. Cela ne veut pas dire qu’une famille n’entre pas dans l’autre. Cet article n’est pas écrit pour vous.
Une introduction simple
Comme le montre la figure, une simple commande sed contient trois parties principales : paramètres, plage, fonctionnement . Le fichier à exploiter peut être directement accroché à la fin de la ligne de commande. En plus de la ligne de commande, sed peut également spécifier un script sed via le paramètre -f. Il s'agit d'une utilisation avancée qui ne sera pas trop décrite.
Recommandations associées : "Tutoriel Linux"
Je répéterai plusieurs exemples de commandes Si vous êtes intelligent, vous trouverez certainement les règles, et parfois vous ne le faites pas. Je n'ai même pas besoin d'expliquer.
Paramètre
-n Ce paramètre signifie --quiet ou --silent. Indique que la sortie du processus d'exécution est ignorée et que seuls nos résultats sont affichés.
Il existe un autre paramètre que nous utilisons couramment : -i.
Après avoir utilisé ce paramètre, toutes les modifications seront effectuées sur le fichier d'origine. Votre sortie écrasera le fichier d'origine. Très dangereux, alors soyez prudent.
Range
1,4 signifie trouver le contenu des lignes 1, 2, 3 et 4 dans le fichier.
La désignation de cette gamme est très astucieuse, veuillez consulter l'exemple suivant (veuillez remplacer la pièce de gamme dans l'image par vous-même).
La sélection de plage peut également utiliser une correspondance régulière. Voir l'exemple ci-dessous.
Par souci d'intuition, les commandes suivantes correspondent une à une à l'introduction ci-dessus. Il peut y avoir des espaces entre la portée et l'opération.
Opération
L'opération la plus couramment utilisée est p, qui signifie impression. Par exemple, les deux commandes suivantes sont équivalentes :
En plus de l'impression, il existe également les opérations suivantes, que nous utilisons couramment.
A, i, c et autres opérations sont basiques mais rarement utilisées et ne seront pas présentées. Nous utilisons encore quelques commandes pour illustrer.
Jetons un coup d'œil à ce que la commande sed peut faire et cliquons sur la commande pour en faire l'expérience.
Supprimez toutes les lignes commençant par # et les lignes vides.
Ceux les plus couramment utilisés, comme celui ci-dessous.
signifie imprimer la deuxième ligne du fichier de groupe.
Alors, que dois-je faire si je veux exécuter plusieurs commandes à la fois et que je ne veux pas écrire de fichier de script sed ? Ensuite, je dois ajouter le paramètre -e ? .
L'unité de fonctionnement de sed est une ligne.
Mode de remplacement
Ce qui précède est le mode de correspondance commun de la commande sed, mais il dispose également d'un mode de remplacement puissant, qui signifie rechercher et remplacer certaines valeurs dedans et les résultats de sortie. Le paramètre -n est rarement utilisé lors de l'utilisation du mode de remplacement.
Le mode de remplacement comporte de nombreux paramètres, mais les première et cinquième parties peuvent être omises. Après remplacement, l'intégralité du texte sera affichée.
La première moitié est utilisée pour faire correspondre certaines gammes, tandis que la seconde moitié effectue l'action de remplacement.
Portée
Cette portée est similaire à la syntaxe de portée ci-dessus. Voir l'exemple ci-dessous.
La commande spécifique est :
Commande
La commande ici fait référence à l'art. C'est ce que signifie remplacer.
Trouver la correspondance
La partie recherche trouvera la chaîne à remplacer. Cette partie peut accepter des chaînes pures ou des expressions régulières. Voir l'exemple ci-dessous.
La commande est similaire :
Remplacer
Il est temps trouver La chaîne sortante a été remplacée. Le contenu de cette section remplace le contenu trouvé dans la section Rechercher des correspondances.
Malheureusement, les expressions régulières ne peuvent pas être utilisées dans cette partie. Le remplacement exact est le plus couramment utilisé. Par exemple, remplacez a par b.
Mais il existe également des fonctionnalités avancées. Semblable à l'API standard de Java ou Python, le remplacement de sed a également la signification de Matched Pattern, et Group peut également être obtenu, sans entrer dans les détails. Les symboles de substitution couramment utilisés sont. Non, répétez-le encore. Lorsqu'il est utilisé dans une chaîne de remplacement, il représente les données de correspondance de recherche d'origine.
La commande suivante entourera chaque ligne du fichier entre guillemets.
paramètre flag
Ces paramètres peuvent être utilisés individuellement ou en multiples. Seuls les plus couramment utilisés sont introduits.
Regardez la syntaxe des deux commandes :
En raison de la régularité, de nombreux caractères doivent être échappés. Vous effectuerez beaucoup de \, * et d'autres traitements dans le script. Vous pouvez utiliser |^@! quatre caractères pour remplacer.
Par exemple, les cinq commandes suivantes sont identiques.
Remarque : Cette méthode ne peut pas être utilisée pour la première moitié de la gamme. J'ai l'habitude d'utiliser le symbole @.
Autres
Expressions régulières
Comme vous pouvez le constater, les expressions régulières sont partout dans la ligne de commande. Vous trouverez ci-dessous une brève explication.
Paramètre i
Le paramètre i a été brièvement présenté ci-dessus. Sa fonction est de permettre l'exécution de l'opération sur le. fichier original. Quoi que vous fassiez, le fichier original sera écrasé. C'est très dangereux.
En ajoutant un paramètre, le fichier original peut être sauvegardé.
sed -i.bak 's/a/b/' file
La commande ci-dessus prendra effet sur le fichier d'origine et générera un fichier file.bak. Il est fortement recommandé d'utiliser le paramètre i pour spécifier également le fichier bak.
Utilisons deux commandes pour jeter un œil à la puissance de sed combinée avec d'autres commandes.
Sortez une ligne d'au moins 50 caractères
Comptez combien de fois chaque mot apparaît dans le fichier
Recherchez le fichier py dans le répertoire et supprimez tous les commentaires au niveau de la ligne
Regardez les lignes 5-7 et 10-13
Afficher uniquement l'adresse IP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!