Supprimer "n" caractères entre \
bheadman
Messages postés
105
Statut
Membre
-
bheadman Messages postés 105 Statut Membre -
bheadman Messages postés 105 Statut Membre -
Bonjour,
Pour commencé ceci n'a pas réellement d'intérêt pour moi c'est plus par curiosité.
Bon fallait faire court pour le titre mais voila l'explication complète :
Je cherche supprimer un nombres quelconques de caractères compris entre un tab et la fin de
la ligne, d'où le "\t" et le"$"
voici ma ligne de commande (je teste ça sur un ifconfig)
[root@srv41001 root]# ifconfig |awk -F":" '/Bcast/ { print $2 | "sed 's/.....$//'" }'
192.78.90.4
explication:
ifconfig = tout le monde connais
awk -F":" = j'utilise le séparateur de champs :
/Bcast/ = match la ligne contenant les @ ip / Bcast / Masque
print $2 = je récupère le champs "192.78.90.4 Bcast"
sed ... = me permet de supprimer les 5 derniers caractère de la ligne
C'est sur ce dernier point que ça bloque je souhaiterais supprimer tous les caractères
compris entre la fin de l'@ et la fin de la ligne et ce quelque soit le nombre (n caractères)
Merci d'avance
PS je suis également ouvert à toute autre solution me permétant de récupérer mes IPs
Pour commencé ceci n'a pas réellement d'intérêt pour moi c'est plus par curiosité.
Bon fallait faire court pour le titre mais voila l'explication complète :
Je cherche supprimer un nombres quelconques de caractères compris entre un tab et la fin de
la ligne, d'où le "\t" et le"$"
voici ma ligne de commande (je teste ça sur un ifconfig)
[root@srv41001 root]# ifconfig |awk -F":" '/Bcast/ { print $2 | "sed 's/.....$//'" }'
192.78.90.4
explication:
ifconfig = tout le monde connais
awk -F":" = j'utilise le séparateur de champs :
/Bcast/ = match la ligne contenant les @ ip / Bcast / Masque
print $2 = je récupère le champs "192.78.90.4 Bcast"
sed ... = me permet de supprimer les 5 derniers caractère de la ligne
C'est sur ce dernier point que ça bloque je souhaiterais supprimer tous les caractères
compris entre la fin de l'@ et la fin de la ligne et ce quelque soit le nombre (n caractères)
Merci d'avance
PS je suis également ouvert à toute autre solution me permétant de récupérer mes IPs
A voir également:
- Supprimer "n" caractères entre \
- Supprimer rond bleu whatsapp - Guide
- Supprimer page word - Guide
- Caractères spéciaux - Guide
- Supprimer pub youtube - Accueil - Streaming
- Caracteres speciaux - Guide
2 réponses
Voici une autre solution, faut juste que je trouve comment exploiter le résultat :D
[root@srv41001 root]# ifconfig |awk '/Bcast/ { for (i=2;i<=4;i++ )print $i}'
adr:192.78.90.4
Bcast:192.78.90.255
Masque:255.255.255.0
C'est mieux car en plus j'ai le nom fournis avec l'IP :D
Je vous tiens au courrant.
Je suis toujours intéressé par la solution au problème d'origine, à savoir supprimer les n caractères compris entre "regexp" et "$"
[root@srv41001 root]# ifconfig |awk '/Bcast/ { for (i=2;i<=4;i++ )print $i}'
adr:192.78.90.4
Bcast:192.78.90.255
Masque:255.255.255.0
C'est mieux car en plus j'ai le nom fournis avec l'IP :D
Je vous tiens au courrant.
Je suis toujours intéressé par la solution au problème d'origine, à savoir supprimer les n caractères compris entre "regexp" et "$"
Voici une autre solution :
#!/usr/bin/perl -w
# Generate the IP#, router, and subnet mask by running the "ipconfig" command.
# Run ipconfig and dump its contents to ipdump.
open(IPNUM,"|ifconfig > ipdump") || die "Can't run 'ifconfig'...$!\n";
close(IPNUM);
# Open the dump file
open(IPNUM,"ipdump") || die "Can't open ipdump...$!\n";
# Parse out the lines with ip numbers
while ( <IPNUM> ) {
chomp;
if ( $_ =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/) {
push (@ipconf,split(/\D+/,$_));
}
}
my $IPAdws2;
my $SubnetMsk2;
my $Router2;
$IPAdws2 = "$ipconf[1]." . "$ipconf[2]." . "$ipconf[3]." . $ipconf[4];
$SubnetMsk2 = "$ipconf[5]." . "$ipconf[6]." . "$ipconf[7]." . $ipconf[8];
$Router2 = "$ipconf[9]." . "$ipconf[10]." . "$ipconf[11]." .$ipconf[12];
print "Adresse ip : \t$IPAdws2\nBcast : \t$SubnetMsk2\nMasque : \t$Router2\n"