Ich brauche den YouTube-Link aus einem Text zu heben, die wie folgt aussieht:Regulärer Ausdruck Verbindung zwischen eckigen Klammern zu greifen
[youtube=http://www.youtube.com/v/qpbAe2HyzqA&hl=en&fs=1&]
Kann jemand helfen?
Ich brauche den YouTube-Link aus einem Text zu heben, die wie folgt aussieht:Regulärer Ausdruck Verbindung zwischen eckigen Klammern zu greifen
[youtube=http://www.youtube.com/v/qpbAe2HyzqA&hl=en&fs=1&]
Kann jemand helfen?
versuchen, etwas wie folgt aus:
\[youtube=(https?://[^\]]+)\]
könnten Sie awk verwenden.
awk ' FS="[" {print $(NF) } ' file_with_text > temp.txt
awk ' FS="]" {print $(NF-1)} ' temp.txt > results.txt
Es ist in zwei Teilen, um es klarer zu machen, und weil awk so seltsam ist. Wenn Sie nur die URL und nicht den youtube = zuerst wollen, dann müssen Sie ein awk mit dem Dateitrennzeichen wie FS = "youtube =" ausführen. Auch awk kann mit der Eingabe seltsam sein; Wenn file_with_text Text in der ersten Zeile hat, kann es merkwürdig wirken und wenn die Datei mit dem von Ihnen gewählten Dateitrennzeichen endet, dann kann ein Fehler auftreten (fügen Sie am Ende der Datei einfach einen anderen Text als das FS-Symbol hinzu).
Edit: Entfernte die Cat-Funktion. Scheint weniger klar als pädagogische Antwort, aber es ist prägnanter.
Eine weitere unnötige Verwendung von 'cat': anstelle von' cat FILE | awk PATTERN FILE ', benutze einfach 'awk PATTERN FILE'. –
Dies hat den Trick gemacht. Danke, Andrew. – hitfactory