2009-07-07 9 views

Répondre

2

Essayez quelque chose comme ceci:

\[youtube=(https?://[^\]]+)\]

+0

Cela a fait l'affaire. Merci, Andrew. – hitfactory

0

Vous pouvez utiliser awk.

awk ' FS="[" {print $(NF) } ' file_with_text > temp.txt 
awk ' FS="]" {print $(NF-1)} ' temp.txt > results.txt 

Il est en deux parties pour le rendre plus clair et parce que awk est étrange comme ça. Si vous voulez juste l'URL et pas le youtube = d'abord, alors vous devrez exécuter un awk avec le séparateur de fichier comme FS = "youtube =". Aussi awk peut être étrange avec l'entrée; Si file_with_text a du texte sur la première ligne, cela peut sembler étrange et si le fichier se termine par le séparateur de fichier que vous avez choisi, alors awk peut avoir une erreur (ajoutez simplement du texte autre que le symbole FS à la fin du fichier).

Édition: Suppression de la fonction cat. Semble moins clair comme une réponse pédagogique, mais il est plus concis.

+1

Une autre utilisation inutile de 'cat': au lieu de' cat FILE | awk PATTERN FILE', utilisez simplement 'awk PATTERN FILE'. –

Questions connexes