Imprimindo string entre padrão usando sed [closed]

0

Eu tenho que extrair o primeiro parâmetro das seguintes chamadas de função usando sed .

strlcpy(p->name,getInfo(NULL,&account)); 
strlcpy(p->balance,getInfo(NULL,&account));
strlcpy(p->number,getInfo(NULL,&account)); 
strlcpy(p->address,getInfo(NULL,&account));

Esperando o resultado da string como abaixo.

p->name
p->balance
p->number
p->address
    
por minil 18.09.2017 / 21:36

2 respostas

1

Eu usaria awk para isso em vez de uma substituição sed :

$ awk -F '[(,]' '{ print $2 }' file
p->name
p->balance
p->number
p->address

Ele vê cada linha como um número de campos separados por ( ou , e imprime o segundo campo.

    
por 18.09.2017 / 21:42
1
sed 's/[^(]*(\([^,]*\),.*//' input.txt

Entrada

strlcpy(p->name,getInfo(NULL,&account)); 
strlcpy(p->balance,getInfo(NULL,&account));
strlcpy(p->number,getInfo(NULL,&account)); 
strlcpy(p->address,getInfo(NULL,&account));

Resultado

p->name
p->balance
p->number
p->address
    
por 19.09.2017 / 02:20

Tags