Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/09/2017, à 19:50

Bryann705

[Résolu]Remplacement

Bonjour,

Je me permets de vous contacter afin de solliciter votre aide...

Je suis actuellement en train de réaliser un travail sur un système de morpion.

Dans un fichier txt j'ai ceci:

|0|0|0|0|0|
|0|0|0|0|0|
|0|0|0|0|0|
|0|0|0|0|0|
|0|0|0|0|0|

L'idée est qu'un utilisateur entre une colonne ainsi qu'une ligne pour pouvoir choisir ou poser sa croix..

Dans notre exemple, nous allons supposer que l'utilisateur souhaite déposer une croix à la ligne 3 colonne 3 ce qui donne :

|0|0|0|0|0|
|0|0|0|0|0|
|0|0|X|0|0|
|0|0|0|0|0|
|0|0|0|0|0|

Le problème c'est que je n'arrive pas à réaliser cette opération... je sèche dessus.
J'ai alors réalisé la commande ci-dessous

cat grille.txt | sed -n 3p | cut -d '|' -f3 | sed 's/0/\X /g'

Le problème c'est qu'il me retourne alors que "X", je ne sais pas intégrer ce X à la place du 0 à la ligne 3 colonnes 3.

A noter que je travaille donc avec un fichier TXT où tous les résultats sont contenus.

Merci.

Dernière modification par Bryann705 (Le 20/09/2017, à 10:00)


Cordialement Bryann705

Hors ligne

#2 Le 19/09/2017, à 20:15

pingouinux

Re : [Résolu]Remplacement

Bonsoir,

lig=3; col=3
sed -r "${lig}s/((\|.){$((col-1))})(\|.)(.*)/\1|X\4/" grille.txt

dont voici le résultat

|0|0|0|0|0|
|0|0|0|0|0|
|0|0|X|0|0|
|0|0|0|0|0|
|0|0|0|0|0|

Ajouté : Avec awk

awk -vL=$lig -vC=$col 'BEGIN{FS=OFS="|"}NR==L{$(C+1)="X"}{print}' grille.txt

Dernière modification par pingouinux (Le 20/09/2017, à 05:58)

Hors ligne

#3 Le 20/09/2017, à 09:59

Bryann705

Re : [Résolu]Remplacement

Merci pour votre réponse.


Cordialement Bryann705

Hors ligne