Eu tenho um arquivo com o seguinte conteúdo:
(((jfojfojeojfow
//
hellow_rld
(((jfojfojeojfow
//
hellow_rld
Como posso extrair todas as linhas que começam com parênteses?
grep
sed
regex
text-processing
user3069326
fonte
fonte
Respostas:
O símbolo para o início de uma linha é
^
. Portanto, para imprimir todas as linhas cujo primeiro caractere é a(
, você gostaria de corresponder^(
:grep
sed
fonte
Usando
perl
Resultado:
Explicação (parte da regex)
/^\(/
^
afirmar posição no início da string\(
corresponde ao personagem(
literalmentefonte
Aqui está
bash
um liner:Aqui estamos lendo cada linha de entrada e, se a linha começar
(
, a linha será impressa. O teste principal é feito por[[ $i =~ ^\( ]]
.Usando
python
:Aqui
line.startswith('(')
verifica se a linha começa com(
, se sim, então a linha é impressa.fonte
awk
awk '/^\(/' testfile.txt
Resultado
Pitão
Como python one-liner:
Ou alternativamente:
Aparência BSD
look
é um dos utilitários Unix clássicos, mas pouco conhecidos, que apareceu na AT&T Unix versão 7. Deman look
:O resultado:
fonte
Você pode fazer o inverso.
ou
fonte
Use o comando grep para isso. Supondo que o arquivo com o conteúdo mencionado seja chamado t.txt:
Com '--color' como argumento adicional, você pode até ver em cores no terminal o que corresponde. Esta instrução também não corresponde a linhas vazias.
fonte
(
, não apenas aquelas que começam com uma.