adaaomad
(usa Ubuntu)
Enviado em 29/05/2016 - 17:52h
msoliver escreveu:
adaaomad escreveu:
Salve galera, em um trabalho da facul preciso criar um script que use o laço for para inserir um x no começo e no final de cada palavra em um arquivo de texto. Já procurei em vários lugares e não achei. O arquivo de texto contém apenas uma linha. Agradeço desde já quem puder ajudar.
______________________________________________________________________________
Boa noite adaaomad.
Se é somente uma linha, necessáriamente, não precisa do "LAÇO".
Leia sobre o comando sed (substituição) e REGEX.
Exemplo:
echo "Agradeço desde já quem puder ajudar"|sed -r 's/(\b[A-Za-z]+\b)/#&#/g'
#Agradeço# #desde# #já# #quem# #puder# #ajudar#
Ou
sed -r 's/(\b[A-Za-z]+\b)/x&x/g' Arquivo.txt
xAgradeçox xdesdex xjáx xquemx xpuderx xajudarx
Onde:
cat Arquivo.txt
Agradeço desde já quem puder ajudar
Se, por força da necessidade, tiver que usar o LAÇO....
NL=$(wc -l < Arquivo.txt) #"PEGA" A QUANTIDADE DE LINHAS DO Arquivo.txt
for ((i=1;i<=$NL;i++));do
sed -n "$i"p Arquivo.txt|sed -r 's/(\b[A-Za-z]+\b)/x&x/g'
done
xAgradeçox xdesdex xjáx xquemx xpuderx xajudarx
Outra maneira:
while IFS=$'\n' read -r line;do
IFS=" "
read -a WORD <<< "$line"
for ((i=0;i<${#WORD[*]};i++));do
echo -n "x"${WORD[$i]}x" "
done
done<Arquivo.txt
xAgradeçox xdesdex xjáx xquemx xpuderx xajudarx
Se, a resposta foi satisfatória, resolveu seu problema e te ajudou. . .
Marque-a como "A MELHOR", assim ganho uns pontos, o que incentiva a continuar colaborando . . . Rsrsrsr
Abç.:
Marcelo Oliver
Olá msoliver, bateu na trave, a última palavra não ficou com x em volta, talvez por ter um ponto final.
textmode escreveu:
O que você pesquisou?
O que você tem pronto até agora?
Porque não funciona?
textmode, pesquisei laço for e comando sed, mas conheço pouco desse ultimo, até agora não tinha usado ele.
o que tenho pronto até agora é:
#!/bin/bash
clear
cd /home
for i in $*; do
done
exit
e o que o msoliver mandou.
é um exercício simples, não funciona porque não sei como percorrer o arquivo e por o x entre as palavras, e tem que ser com o laço for. Estou executando esse script no conectiva10.
obrigado pela força galera, continuo tentando por aqui.