2013-08-13 27 views
16
1:FAILED  + *1  0  (8328832,AR,UNDECLARED) 

Questo è quello che mi aspetto: 8.328.832, AR, SOMMERSOCome estrarre il contenuto tra due parentesi utilizzando grep?

Sto cercando di trovare un'espressione regex generale che permette di prendere qualsiasi contenuto tra due staffe fuori. Il mio tentativo è.

grep -o '\[(.*?)\]' test.txt > output.txt 

Ma non può corrispondere nulla = (

Grazie

risposta

18

Sempre utilizzando e

grep -oP '\(\K[^\)]+' file 

\K mezzi che utilizzano sguardo intorno funzionalità avanzata regex. Altro precisamente, è un positiva look-dietro affermazione, lo si può fare in questo modo troppo:

grep -oP '(?<=\()[^\)]+' file 

se ti manca l'opzione -P, si può fare questo con :

perl -lne '/\(\K[^\)]+/ and print $&' file 

Un altro approccio più semplice utilizzando

awk -F'[()]' '{print $2}' file 
+0

Ho ottenuto "grep: parentesi non bilanciate" dopo che ho eseguito th is.È la lettera P a refuso? @sputnick – user2574316

+0

Quale sistema operativo utilizzi e quale grep? –

+0

è OS X (UNIX) @sputnick – user2574316

Problemi correlati