Linux - éditeur de flux léger commande sed

éditeur de flux léger commande sed

sed est un inclut presque toutes les plates - formes UNIX (y compris Linux) éditeur de flux léger. commande sed est principalement utilisé pour la sélection des données, remplacer, supprimer, ajouter d' autres opérations. Syntaxe de la commande : sed [Options] '[action]' filename options de commande : 
-n: En général, toutes les données commande sed sont sorties à l'écran. Si vous ajoutez cette option, ne mettez par la sortie de la ligne de traitement de commande sed à la carte de l' écran. 
-e: permet à plusieurs applications commande sed pour modifier les données d'entrée. 
-i: sed modifié avec les résultats des données de fichiers modifiés sont lues directement et non par la sortie de l'écran. Ce sed peut modifier le contenu du fichier. Commande Action : 
A \: après des lignes supplémentaires. Après la ligne en cours, ajouter une ou plusieurs lignes. Ajouter plusieurs lignes, à l' exception de la dernière ligne, la fin de chaque besoin de ligne à utiliser « \ » représente les données ne sont pas la fin. [Sed '4a choudoufu' score.txt] 
c \: remplacement de la rangée. Remplacer les données d' origine avec une rangée derrière chaîne c, en remplaçant plusieurs lignes, à l' exception de la dernière, l'extrémité de chaque rangée de nécessité d'utiliser « \ » représente les données ne sont pas la fin. [Sed '2c Pas de telle personne! Score.txt ] 
i \: insert avant. Insertion d' une ou plusieurs lignes avant la ligne courante. Insérer plusieurs lignes, à l' exception de la dernière ligne, la fin de chaque ligne devra utiliser « \ » représente les données ne sont pas la fin. [Sed '6i Great' score.txt] 
d: Supprimer. Supprimer la ligne spécifiée. [Sed '3d' score.txt] 
p: impression. La sortie de la ligne spécifiée.







s: remplacement de caractères. En outre remplacement (format de remplacement et les opérations modifier vim similaires) une chaîne dans le format « de plage de ligne / chaîne / nouvelle chaîne / g » avec une chaîne [sed « s / Wangwu / wangshouzhi / g » note txt] objet de commande 
pour une opération de ligne. np n-ième impression de ligne. [Sed 2p 'score.txt]

:
exemple:
[root@192 cut]# cat score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
2	lisi	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
Imprimez la ligne de données 2: Exemples
[root@192 cut]# sed '2p' score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
1	zhangsan	M	90
2	lisi	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
Cependant, nous avons constaté que, en plus de la deuxième ligne, l'autre sur l'industrie, évidemment, cela n'est pas l'effet que je veux.
Exemple: pour imprimer uniquement les données dans la deuxième rangée
[root@192 cut]# sed -n '2p' score.txt
1	zhangsan	M	90
[root@192 cut]#
Exemple: sed et le pipeline d'opérande
不加-n
[root@192 cut]# df -h | sed '2p'

文件系统	      容量  已用  可用 已用%% 挂载点
/dev/sda3              17G  2.6G   14G  17% /
/dev/sda3              17G  2.6G   14G  17% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             985M   40M  896M   5% /boot
[root@192 cut]#

加-n
[root@192 cut]# df -h | sed -n '2p'
/dev/sda3              17G  2.6G   14G  17% /
[root@192 cut]#
Exemples: score.txt obtenir la première ligne du fichier, supprimer la ligne de données 3, mais ne modifie pas le fichier original
[root@192 cut]# sed '1,3d' score.txt
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
Exemples: score.txt obtenir la deuxième ligne du fichier, supprimer la ligne de données 4, sans modifier le fichier d'origine
[root@192 cut]# sed '2,4d' score.txt
Id	Name	Gender	Score
4	zhaoliu	N	97
5	NangongYi	M	100
[root@192 cut]#
Exemple: Dans la ligne 6 fichiers score.txt, append bonjour LDR
[root@192 cut]# sed '6a hello LDR' score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
2	lisi	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
hello LDR
[root@192 cut]#
Exemple: Insérer deux lignes avant la ligne de données du second fichier score.txt
[root@192 cut]# sed '2i hello \
> wold ' score.txt
Id	Name	Gender	Score
hello
wold
1	zhangsan	M	90
2	lisi	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
[root@192 cut]#
Note: cette frappe quand le premier à écrire une seule citation, où entrer backslash, de continuer à perdre. Rappelezvous, avant et après le guillemet unique, puis jouer les deux parties ensemble dans une barre oblique inverse où un retour chariot,sortevous ne verrez pasrésultats.
Exemple: remplacer le fichier score.txt de données « LISI » « Une telle personne » (c remplacement de la ligne)
[root@192 cut]# sed '3c No such person!' score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
No such person!
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
[root@192 cut]#
substitution de chaîne sed : sed 's / caractère ancien / nouveau string / g' filename
Exemple: le fichier score.txt « LISI » remplacé « liziqiang »
[root@192 cut]# sed 's/lisi/liziqiang/g' score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
2	liziqiang	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
[root@192 cut]#
Exemple: le remplacer « lisi » fichier score.txt est « liziqiang », et modifier le fichier d'origine
[root@192 cut]# cat score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
2	lisi	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
[root@192 cut]#
[root@192 cut]# sed -i 's/lisi/liziqiang/g' score.txt
[root@192 cut]#
[root@192 cut]# cat score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
2	liziqiang	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
[root@192 cut]#
Remarque : En fonctionnement pratique, il est recommandé de ne pas utiliser cette méthode, modifier le contenu du fichier!
Exemples :( opération multi-commande) tandis que le « liziqiang » et « zhaoliu » est remplacé par « # »
[root@192 cut]# sed -e 's/liziqiang/#/g' 's/zhaoliu/#/g' score.txt
sed:无法读取 s/zhaoliu/#/g:没有那个文件或目录
Id	Name	Gender	Score
1	zhangsan	M	90
2	#	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
[root@192 cut]#
Ecrire, n'est pas vrai! Multi-commande doit être écrit en une seule citation! Comme suit:
[root@192 cut]# sed -e 's/liziqiang/#/g;s/zhaoliu/#/g' score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
2	#	M	88
3	wangwu	M	98
4	#	N	97
5	NangongYi	M	100
[root@192 cut]#
Remarque: entre plusieurs commandes (guillemets simples) Utilisez « ; » séparer!
Publié 59 articles originaux · a gagné les éloges 2 · Vues 5570

Je suppose que tu aimes

Origine blog.csdn.net/LDR1109/article/details/102957959
conseillé
Classement