Encontrar posição da palavra numa linha [RESOLVIDO]

1. Encontrar posição da palavra numa linha [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 26/10/2017 - 23:19h

Considerando o exemplo abaixo:
name: "word" "palavra" "mot" "palabra"
namelang: "en" "pt" "fr" "es"

Preciso localizar um idioma específico, por exemplo "pt", obter a posição em que se encontra na linha 2, neste caso é a "terceira" palavra da linha, jogar essa informação (3) numa variável, que será usada para encontrar "palavra" na primeira linha, exatamente no idioma especificado.

Pra deixar mais claro, se eu quiser pegar a tradução em "francês" para "palavra", usaria um comando para saber em qual posição está "fr" (neste caso é 4) para encontrar na outra linha a quarta palavra, "mot".


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/10/2017 - 18:06h

Ryuk escreveu:

Considerando o exemplo abaixo:
name: "word" "palavra" "mot" "palabra"
namelang: "en" "pt" "fr" "es"

Preciso localizar um idioma específico, por exemplo "pt", obter a posição em que se encontra na linha 2, neste caso é a "terceira" palavra da linha, jogar essa informação (3) numa variável, que será usada para encontrar "palavra" na primeira linha, exatamente no idioma especificado.

Pra deixar mais claro, se eu quiser pegar a tradução em "francês" para "palavra", usaria um comando para saber em qual posição está "fr" (neste caso é 4) para encontrar na outra linha a quarta palavra, "mot".


Boa tarde Ryuk.
Use ARRAYS:
lang=("en" "pt" "fr" "es")
name=( "word" "palavra" "mot" "palabra")
for ((n=0;n<${#lang[@]};n++));do [ ${lang[$n]} = "es" ] && echo "${lang[$n]}:${name[$n]}";done
es:palabra


att.:
Marcelo Oliver

3. Re: Encontrar posição da palavra numa linha [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 27/10/2017 - 00:16h

Ryuk escreveu:

Considerando o exemplo abaixo:
name: "word" "palavra" "mot" "palabra"
namelang: "en" "pt" "fr" "es"

Preciso localizar um idioma específico, por exemplo "pt", obter a posição em que se encontra na linha 2, neste caso é a "terceira" palavra da linha, jogar essa informação (3) numa variável, que será usada para encontrar "palavra" na primeira linha, exatamente no idioma especificado.

Pra deixar mais claro, se eu quiser pegar a tradução em "francês" para "palavra", usaria um comando para saber em qual posição está "fr" (neste caso é 4) para encontrar na outra linha a quarta palavra, "mot".


é D+ pra eu entender isso ... se vira nos 30 aí e v se te ajuda >>> http://shell-script.yahoogrupos.com.narkive.com/YGmcMfmV/descobrir-qual-coluna-esta-a-string

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



4. Re: Encontrar posição da palavra numa linha

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 27/10/2017 - 00:39h

Já tinha achado uma solução "gambiarrística" aqui:
var=pt ; grep "namelang" $var arquivo.txt | sed -e "s/$var.*$/$var/" | wc -w 

Daí usaria o cut para encontrar a palavra:
grep -w "name" arquivo.txt | cut -d" " -f$var2 

Mas, ainda não tá o ideal. Palavras compostas com espaços não saem completas com o cut.

Tava esperando alguém aparecer com um comando, digamos, mais "elegante".


5. Re: Encontrar posição da palavra numa linha [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 27/10/2017 - 20:04h

msoliver escreveu:

Boa tarde Ryuk.
Use ARRAYS:
lang=("en" "pt" "fr" "es")
name=( "word" "palavra" "mot" "palabra")
for ((n=0;n<${#lang[@]};n++));do [ ${lang[$n]} = "es" ] && echo "${lang[$n]}:${name[$n]}";done
es:palabra


att.:
Marcelo Oliver


Ok, acho que posso adaptar isso ao que pretendo de fato.
Obrigado!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts