Bash - usando o grep em strings definidas pelo usuário

0

Às vezes eu acho muito útil poder usar o grep em uma string (sem a string estar em um arquivo).

Por exemplo:

var="Some random string"
$var | grep -e "Some"

Eu acho que eu poderia usar echo $var | grep ... , mas eu realmente não quero que a string seja escrita no console.

    
por Eutherpy 29.06.2015 / 09:34

2 respostas

2

echo $var | grep -e "Some" é, na verdade, a abordagem correta. Ao enviar a saída pelo grep com | , ela não aparecerá mais no console. Da página de manual do Bash :

Pipelines

A pipeline is a sequence of one or more commands separated by one of the control operators | or |&. The format for a pipeline is:

[time [-p]] [ ! ] command [ [|│|&] command2 ... ]

The standard output of command is connected via a pipe to the standard input of command2. This connection is performed before any redirections specified by the command (see REDIRECTION). If |& is used, the standard error of command is connected to command2's standard input through the pipe; it is shorthand for 2>&1 |. This implicit redirection of the standard error is performed after any redirections specified by the command.

    
por 30.06.2015 / 07:58
2

o bash agora permite aqui strings , por exemplo:

var="Some random string"
grep -e "Some" <<<"$var"
    
por 30.06.2015 / 15:44