#1 Le 19/12/2014, à 11:44
- Headshrinker
[Résolu] Récupérer une chaine de caractère (3) sur une ligne précise
Salut à tous
Je souhaite renommer mes fichiers ovpn avec un élément qui est dans le fichier en lui-même.
Voici a quoi ressemble le contenu du fichier
client
remote bs1.vpnfacile.net 443
dev tun
proto tcp
nobind
persist-key
persist-tun
tls-auth ta.key 1
ca ca.crt
cipher AES-256-CBC
keysize 256
link-mtu 1560
comp-lzo
auth-user-pass
Dans cet exemple: le fichier "VPNFacile - Bahamas #1.ovpn" contient en ligne 2 "remote bs1.vpnfacile.net 443"
Je veux récupérer le bs1 pour enfin nommer "VPNFacile - Bahamas #1.ovpn" en "bs1.conf"
voici le début de mon script qui fonctionne jusqu'à l'affichage de la ligne n°2:
#!/bin/bash
echo "Quel fichier veux tu renommer ?"
read fichier_ovpn # Coller le chemin vers le fichier ovpn
sed -n 2p $fichier_ovpn # Affiche la 2eme ligne du fichier
Donc voila, la ligne 2 s'affiche mais pour les 8, 9, 10eme caracteres de cette ligne, je seche
merci pour votre aide
Dernière modification par Headshrinker (Le 19/12/2014, à 21:34)
Hors ligne
#2 Le 19/12/2014, à 12:02
- pingouinux
Re : [Résolu] Récupérer une chaine de caractère (3) sur une ligne précise
Bonjour,
Si tu veux récupérer, sur la ligne n°2, le mot compris entre l'espace et le point
sed -rn '2s/[^ ]+ ([^.]+).*/\1/p' "$fichier_ovpn"
Hors ligne
#3 Le 19/12/2014, à 12:06
- Headshrinker
Re : [Résolu] Récupérer une chaine de caractère (3) sur une ligne précise
merci je vais tester ce soir
Hors ligne
#4 Le 19/12/2014, à 14:08
- credenhill
Re : [Résolu] Récupérer une chaine de caractère (3) sur une ligne précise
hello
mv "$fichier_ovpn" $(awk -F"[ .]" 'NR==2 {print $2 ".conf"; exit}' "$fichier_ovpn")
Hors ligne
#5 Le 19/12/2014, à 21:33
- Headshrinker
Re : [Résolu] Récupérer une chaine de caractère (3) sur une ligne précise
hello
mv "$fichier_ovpn" $(awk -F"[ .]" 'NR==2 {print $2 ".conf"; exit}' "$fichier_ovpn")
ça marche nickel !!! merci
Hors ligne