Eu quero fazer um comando Unix que leia uma string e conte quantas palavras ela contém. No meu caso, as palavras são separadas por um _
caractere (sublinhado), não por espaços.
Por exemplo, TABLE_PERSON
contém duas palavras, portanto, o comando deve imprimir "2".
Como eu posso fazer isso?
unix
string-manipulation
user316467
fonte
fonte
Respostas:
Se sua sequência não contiver espaços, você poderá substituí-los
_
por espaços (portr
( traduzir caractere ) oused
( editor de fluxo )) e usarwc
( contagem de palavras ) para contar as palavras:ou
se sua string contiver espaços que não precisam ser considerados como um separador (por exemplo, se
"TABLE_PERSON 2"
contar como duas palavras separadas por_
:TABLE
ePERSON 2
), você poderá primeiro remover os espaços com qualquer caractere (por exemplo,-
) e usar o mesmo comando:fonte
Muitas maneiras, a maioria das quais são fáceis de descobrir:
fonte