Besoin d'un maître script shell :)

Fermé
Grandgousier - 6 juin 2016 à 13:18
dubcek Messages postés 18769 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 mars 2025 - 7 juin 2016 à 08:33
Bonjour, voilà j'ai un petit problème pour coder mon script shell, je suis coincé est-ce que quelqu'un pourrait m'aider ?

Alors en fait j'ai une phrase contenue dans une variable ($input)

read input
Je tape ma phrase

supposons que ce soit "Je suis une quiche en programmation"

Ensuite j'ai besoin de compte le nombre de mots et de mettre ça dans une autre variable :

nbredemots=$(printf "$input" | wc -w)

Mais a partir de là j'ai un problème.
Je voudrais pouvoir envoyer dans un fichier texte des groupes de mots prédéfinis venant de cette phrase.
printf "$input" | awk '{print $1, $2}' >> text.txt marche bien, mais comment faire prendre en compte a awk la variable nbredemots ? De sorte que awk arrete d'imprimer les mots à l'argument $nbredemots ?

Merci d'avance !

A voir également:

2 réponses

printf "$input" | awk '{print $1, $2}' >> text.txt m


Est ce que tu veux à chaque fois des mots qui se suivent en commençant par le premier ? (1,2 ou 1,2,3, ou 1,2,3,4 ...) ?

Si c'est le cas tu peux t'aider de cut, voici un exemple :

$mots="a b c d e f g"
$echo $mots
a b c d e f g
$echo $mots | cut -d\ -f-5
a b c d e
$echo $mots | cut -d\ -f-3
a b c
0
dubcek Messages postés 18769 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 mars 2025 5 630
7 juin 2016 à 08:33
hello
$ input="aa bb cc dd ee"
$ nbredemots=3
$ awk -v n=$nbredemots '{NF=n; print}' <<<"$input"
aa bb cc
$ nbredemots=2
$ awk -v n=$nbredemots '{NF=n; print}' <<<"$input"
aa bb
0