Eu tenho a seguinte sequência
Algo (1) ^^^ Algo (2) ^^^ Algo (3) ^^^ ... ^^^ Algo (n)
como encontrar o número de
algumas coisas)
na cadeia.
shell-script
grep
sed
awk
Dinesh Dabhi
fonte
fonte
()
? Sua string realmente contém^
? Por favor, mostre-nos um exemplo dos dados reais com os quais você está trabalhando.^^^
delimitadores?one^^^two^^^three^^^... ^^^somenumber
Então, eu quero encontrar o número de seqüência de caracteres que são delimitados pelo delimitador "^^^".Respostas:
Este comando fará por você:
e você pode substituir o seu separador de campo favorito pelo espaço. Se você insistir em usar ^^^ como um separador de campos, deverá usar
fonte
Posso dar uma resposta melhor se você mostrar seus dados reais, mas supondo que você esteja procurando o maior espaço não em branco que contenha sequência que termina com
()
, você pode fazer o seguinte:Explicação
O
-P
sinalizador paragrep
habilita PCREs e-o
faz com que imprima apenas cada uma das cadeias correspondentes e em uma linha separada.A expressão regular corresponde:
[^\s]+
: o maior número possível de caracteres que não sejam espaços em branco\(
: um parêntese de abertura[^\)]+?\)
: o maior número)
possível de caracteres até o primeiro)
.Isso imprimiria:
Você passa isso
wc -l
para contar o número de linhas.fonte
(n)
apenas para nos demonstrar uma quantidade desomething
.1, 2, 3, ... n
. Quero dizer, provavelmente não termina()
.