Je comprends que sedc'est une commande pour manipuler un fichier texte.
D'après ma recherche sur Google, il semble que cela -isignifie effectuer l'opération sur le fichier lui-même, est-ce correct?
Et alors '1d'?
Je comprends que sedc'est une commande pour manipuler un fichier texte.
D'après ma recherche sur Google, il semble que cela -isignifie effectuer l'opération sur le fichier lui-même, est-ce correct?
Et alors '1d'?
Réponses:
Dans sed:
-i L'option modifiera le fichier d'entrée sur place
'1d' supprimera la première ligne du fichier d'entrée
Exemple:
% cat file.txt
foo
bar
% sed -i '1d' file.txt
% cat file.txt
bar
Notez que, la plupart du temps, c'est une bonne idée de faire une sauvegarde tout en utilisant l' -ioption afin que vous ayez le fichier d'origine sauvegardé en cas de changement inattendu.
Par exemple, si vous le faites:
sed -i.orig '1d' file.txt
le fichier d'origine sera conservé tel quel file.txt.origet le fichier modifié le sera file.txt.
sed '1d' file.txt
Imprime le contenu de file.txt; à l'exclusion de la première ligne; à la sortie standard.
sed -i '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS
Imprime le contenu de file.txt; à l'exclusion de la première ligne; retour dans file.txt; écraser l'original.
sed -i.back '1d' file.txt
Crée une sauvegarde de l'original (as file.txt.back), avant d'apporter des modifications. Sauf avec FreeBSD sed, le suffixe (ici .back) doit être attaché à l' -ioption (dans le même argument, pas d'espace entre -iet .back).
sed '2d' file.txt
Imprime le contenu de file.txt; à l'exclusion de la deuxième ligne; à la sortie standard.
(La spécification d'un nombre supprimera la ligne correspondante).
Également compatible avec le -idrapeau.
sed '1!d' file.txt
Imprime le contenu de file.txt; excluant tout sauf la première ligne; à la sortie standard.
(En d'autres termes, seule la première ligne est imprimée).
Également compatible avec le -idrapeau.
sed '$d' file.txt
Imprime le contenu de file.txt; à l'exclusion de la dernière ligne; à la sortie standard.
Également compatible avec le -idrapeau.
En sed -havoir:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
et "effectuer l'opération sur le fichier lui-même." c'est absolu.
Et a mandéclaré: «Sed est un éditeur de flux. Un éditeur de flux est utilisé pour effectuer des transformations de texte de base sur un flux d'entrée (un fichier ou une entrée à partir d'un pipeline). '
comme votre question,
sed -i '1d' file_name
signifie: supprimer la première ligne du fichier "file_name"à l'endroit et sauvegarder dans le fichier. (tout comme modifier le fichier et supprimer directement la première ligne.)
-ipour voir ce qui se passe en premier, puis utiliser-ipour modifier réellement le fichier.