Press "Enter" to skip to content

Comment insérer un caractère dans un fichier SED ?

Mais je plaisante, voici la solution la plus générale : cela insérera un – après les quatre premiers caractères. Pour une version sed incertaine (au moins ma GNU sed 4.2.2), vous pouvez simplement faire : /4 -> remplacer pour la 4ème occurrence (du motif de recherche .)

Q. Comment faire en sorte que SED prenne l'entrée du tuyau et l'insère dans un?

Cela prend votre seule ligne de sortie, ajoute la commande sed 1i, les canaux qui envoient la commande sed à sed en utilisant -f- pour prendre les commandes sed de stdin. Cela ressemble à des tubes et non à des commandes se terminant par > temp ; mv temp file2, mais sed le fait quand même quand -i est utilisé.

Q. Comment deux commandes de remplacement sont-elles utilisées dans SED ?

Deux commandes de remplacement sont utilisées dans la commande `sed` suivante. Ici, le texte ' Count ' sera remplacé par 100 dans la ligne qui contient le texte ' CSE ' et le texte ' Count ' sera remplacé par 70 dans la ligne qui contient le motif de recherche ' EEE '.

Q. Comment la commande sed recherche-t-elle le modèle ?

La commande `sed` suivante recherchera le motif, 'Bash' et si le motif correspond, il sera accessible par '//1' dans la partie de remplacement du texte. Ici, le texte, 'Bash' est recherché dans le texte d'entrée et, un texte est ajouté avant et un autre texte est ajouté après '//1'.

Q. Comment remplacer une chaîne dans SED Stack Overflow ?

J'ai un simple fichier texte contenant plusieurs lignes de données où chaque ligne a exactement 26 caractères. Par exemple, maintenant, je veux remplacer les 12e et 13e caractères si seuls ces deux caractères sont 49 par des caractères 58. Le groupe capturé est //1, donc vous voulez mettre les 11 (pas 12) caractères, puis 58 :

Q. Quel est le groupe capturé dans SED Stack Overflow ?

Le groupe capturé est //1, vous voulez donc mettre les 11 (et non 12) caractères, puis 58 : vous avez également besoin de -E ou -r si vous ne voulez pas échapper aux accolades. Avec votre entrée, la commande passe de 49 à 58 dans les lignes 1, 2, 4 et 5.

Q. Ajoutez-vous une virgule au 4ème caractère dans SED ?

Sinon, la première substitution affecterait le décalage de la seconde. Vous pouvez toujours en tenir compte cependant : cela ajoutera une virgule sur la sortie au 4ème caractère de toutes les lignes d'entrée avec au moins autant de caractères. Et, si vous suivez mon conseil, vous ne devriez généralement pas utiliser le commutateur -i sur n'importe quel sed qui en propose un.