Wörter aus einer Textdatei "rausfiltern" und in neue einsetzen

ivans89

Ensign
Dabei seit
März 2018
Beiträge
223
Moin,
brauche mal etwas Hilfe.

Ich habe hier eine Text Datei mit 15000 Zeilen. In jeder Zeile stehen mehrere Variablen. Nun brauche ich aus jeder Zeile nur eine der

Hier mal ein Beispiel:

"37.120.157.195","us6478.nordvpn.com","@{ikev2=True; openvpn_udp=True; openvpn_tcp=True; socks=False; proxy=False; pptp=False; l2tp=False; openvpn_xor_udp=False; openvpn_xor_tcp=False; proxy_cybersec=False; proxy_ssl=True; proxy_ssl_cybersec=True; ikev2_v6=False; openvpn_udp_v6=False; openvpn_tcp_v6=False; wireguard_udp=True; openvpn_udp_tls_crypt=False; openvpn_tcp_tls_crypt=False; openvpn_dedicated_udp=False; openvpn_dedicated_tcp=False; skylark=False}"

Da sind alle Server von einem VPN Anbieter aufgelistet und ich möchte nun das sämtliche Server (usXXX.nordvpn.com) rausgefiltert werden und in eine neue Text Datei abgespeichert werden, oder das alles gelöscht wird außer der Variable. Allerdings ist die Zahl nach dem us immer unterschiedlich.
Ist dies Möglich?
 

Hayda Ministral

Rear Admiral
Dabei seit
Nov. 2017
Beiträge
5.350
Was hast Du bisher versucht?
 

ivans89

Ensign
Ersteller dieses Themas
Dabei seit
März 2018
Beiträge
223
mit NotePad und PowerShell, aber so richtig habe ich es nicht hinbekommen.
 

new Account()

Vice Admiral
Dabei seit
Mai 2018
Beiträge
6.733

ivans89

Ensign
Ersteller dieses Themas
Dabei seit
März 2018
Beiträge
223
Hab erstemal die komplette Serverliste geladen mit:
$nordservers = Invoke-WebRequest -Uri https://nordvpn.com/api/server -UseBasicParsing -Method GET | where country -eq 'United States' | ConvertFrom-Json; $nordservers | export-csv -Path C:\nordservers.txt;

danach habe ich nur die USA Server filtern lassen in einer Textdatei mit:
$nordservers | where country -eq 'United States' | select ip_address,domain,features | export-csv -Path C:\nordservers.txt;

Das ganze wollte ich dann natürlich dann das er mir nur US Server anzeiget allerdings nur die "domain" und mit dem features: proxy_ssl=True:
$nordservers | where country -eq 'United States' | where features 'proxy_ssl=True' | select domain | export-csv -Path C:\nordserversxx.txt;

Ich kenne mich halt auch nicht wirklich mit PowerShell aus, habe mir nur den Kram aus dem Internet grob zusammengebastelt und getestet.
 

cgs

Ensign
Dabei seit
Juni 2020
Beiträge
255
grep "us.*.nordvpn.com" file

Edit: Verbesserte Version:
grep "us[0-9]*\.nordvpn\.com" file

Oder halt python, etc ...
 
Zuletzt bearbeitet:

ivans89

Ensign
Ersteller dieses Themas
Dabei seit
März 2018
Beiträge
223

BeBur

Lt. Commander
Dabei seit
Nov. 2018
Beiträge
1.580
Eine Antwort auf solche Fragen lautet immer regex. Einfach mal googlen, gibt auch onlinetester dafür.
 

ivans89

Ensign
Ersteller dieses Themas
Dabei seit
März 2018
Beiträge
223

ivans89

Ensign
Ersteller dieses Themas
Dabei seit
März 2018
Beiträge
223
Ok ich habe es hinbekommen. Hab nach US mit PowerShell gefiltert und als .txt ausgegeben. Danach in Excel Importiert und konnte ganz easy alle Spalten löschen. Danach wieder in .txt exportieren und schon hatte ich genau das was ich brauche.

Danke an alle!
 

0x8100

Lt. Commander
Dabei seit
Okt. 2015
Beiträge
2.041
Code:
$ curl -s https://nordvpn.com/api/server | jq '.[].domain' | sed 's/"//g'

us5032.nordvpn.com
us5036.nordvpn.com
uk1780.nordvpn.com
ca942.nordvpn.com
se389.nordvpn.com
uk1778.nordvpn.com
nl711.nordvpn.com
...

$ curl -s https://nordvpn.com/api/server | jq '.[].domain' | sed 's/"//g' | wc -l
5074
komme auf 5074 einträge.
 

Hayda Ministral

Rear Admiral
Dabei seit
Nov. 2017
Beiträge
5.350

pizza4ever

Lt. Commander
Dabei seit
Apr. 2009
Beiträge
1.570
Code:
$nordservers= Invoke-RestMethod -Uri https://nordvpn.com/api/server -UseBasicParsing -Method GET | Where-Object {$_.domain -like 'us*'} #| ConvertFrom-Json; $nordservers | export-csv -Path C:\nordservers.txt;
$nordservers = $nordservers | Select-Object ip_address,domain,features
und dann halt export-tocsv ...?
 
Top