commande Terminal à une position connue [RÉSOLU], travailler dans des fichiers .txt |
Bienvenue invité ( Connexion | Inscription )
commande Terminal à une position connue [RÉSOLU], travailler dans des fichiers .txt |
23 Mar 2022, 15:18
Message
#1
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Hello,
Je m'étale, j'ai besoin de développer clairement (si j'y arrive!!! 😂) pour me faire comprendre, et j'ai besoin de réponses claires et précises (cf signature 😔). J'ai à nouveau besoin d'aide dans la continuité de ceci https://forum.macbidouille.com/index.php?s=...t&p=4404986 Dans une base de données vraiment volumineuse, je voudrais: 1/ remplacer(ou supprimer) un caractère à une position connue dans la ligne; 2/ insérer un caractère spécial à une/des positions connues dans la ligne; 3/ supprimer toute la fin de la ligne à partir d'une position connue. J'avais commencé avec des judicieux rechercher/remplacer dans TextWrangler et la recherche par lot, jusqu'à ce que je me rende compte que je ne pouvais rien faire de façon automatique pour le point 3, car les données sont de contenu et longueur variables, ce qui m'empêche de pouvoir faire du rechercher/supprimer. La demande, pour être précise, est très compliquée à formuler, trop de chose développer. Il serait beaucoup plus simple (pour moi en tout cas) d'avoir une ligne de commande pour les 3 cas, ensuite, j'adapte suivant mes besoins. Ce que je voudrais, c'est: - une ligne de commande pour remplacer le caractère en position x - une ligne de commande pour supprimer le caractère en position x - une ligne de commande pour insérer un caractère en position x - une ligne de commande pour insérer un caractère en positions x,x,x,x,x - une ligne de commande pour supprimer tout le contenu de la ligne à partir du caractère en position x Si possible, je voudrais utiliser la méthode du glisser de fichier dans le Terminal pour déterminer le/les fichier/s à traiter. L'expérience précédente, bien que très fonctionnelle m'oblige a avoir les fichiers dans un endroit et un nom définis,… ce qui est pour moi est très fastidieux. Voilà… rien que ça 😬 En espérant trouver de l'aide… merci de votre patience pour la lecture déjà. 🙏 Ce message a été modifié par macmacmac - 31 Mar 2022, 21:25. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
23 Mar 2022, 23:08
Message
#2
|
|
The Original Martian & DBCM Groupe : Modérateurs Messages : 6 554 Inscrit : 25 May 2004 Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns Membre no 19 190 |
Ce n'est pas exactement ce que tu veux, c'est du python 3 que tu peux lancer avec le terminal si tu veux.
L'instruction "- une ligne de commande pour insérer un caractère en positions x,x,x,x,x" n'est pas claire peux tu préciser? Ce code est un exemple de ce qui est possible: CODE # -*- coding: utf-8 -*- #On définit les fonctions qui vont agir sur les lignes de texte : # Remplace le xème caractère de ma ligne par r # ou le supprime si rien n'est donné def remplCar(maligne,x,r=''): rep = maligne[:x-1]+r+maligne[x:] return rep # Insère un r en xème position de ma ligne def inserCar(maligne,x,r): rep = maligne[:x-1]+r+maligne[x-1:] return rep # Supprime la fin de ligne, après la position x def supprCar(maligne,x): rep = maligne[:x] return rep with open ('monfichier.txt') as f: #le fichier à traiter meslignes = f.readlines() print (meslignes) #quelques exemples d'utilisation: for i in meslignes : print(remplCar (i,5,'W')) # remplace le 5e caractère par un W print(remplCar (i,3)) # supprime le 3e caractère print(inserCar (i,4,'!')) # insère un ! en 4è position print(supprCar (i,10)) # supprime à partir de la 10è position Puis on peut créer un fichier pour récupérer tout ça. -------------------- MBP 16" Sonoma 14.4.1 MBA 13" Sonoma 14.4.1
DBCM III Disciple du MSV Team BOINC Macbidouille But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D |
|
|
24 Mar 2022, 00:11
Message
#3
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 355 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
L'instruction "- une ligne de commande pour insérer un caractère en positions x,x,x,x,x" n'est pas claire peux tu préciser? Le s à positions me fait penser qu'il s'agit d'insérer un (même) caractère à plusieurs endroits dans la ligne. Ex. Insérer un # en 3e, 5e et 11e position. -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
24 Mar 2022, 12:14
Message
#4
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
L'instruction "- une ligne de commande pour insérer un caractère en positions x,x,x,x,x" n'est pas claire peux tu préciser? Le s à positions me fait penser qu'il s'agit d'insérer un (même) caractère à plusieurs endroits dans la ligne.Ex. Insérer un # en 3e, 5e et 11e position. Ce n'est pas exactement ce que tu veux, c'est du python 3 que tu peux lancer avec le terminal si tu veux. Merci Phil J. Fry. Il est possible de modifier ton code en prenant en compte la demande ci-dessus stp, de pouvoir insérer un caractère à diverses positions? Sinon, comment j'utilise ceci? A coller dans le Terminal puis faire glisser le fichier? A coller dans le Terminal puis sauvegarder d'une façon précise? Il faut créer un script? Comment je sais en quelle position je dois insérer le caractère vu que les positions suivantes vont changer à chaque insertion? La position suivante est la nouvelle position en prenant en compte l'insertion précédente? Ou il faut rester sur la définition de la position d'insertion avant celles-ci et le Terminal sait où il doit ajouter l'insertion suivante? 🙏 Merci de ton aide et aussi à baron qui apporte une assistance par ses interventions même quand il ne contribue pas directement. Pour infos, cette base de données fait actuellement + de 5 Go et contient des millions de lignes. Autant dire qu'avec TextEdit, ça fonctionne, mais les manipulations ne sont plus possibles tellement c'est long, mais sinon pas de crash. TextWrangler, est nettement plus rapide, mais il m'affiche des problèmes de mémoire de temps en temps. Je sais que le Terminal va faire ça les deux doigts dans le nez. Mais si jamais c'est trop lourd, je pourrais travailler sur tous les fichiers et faire la fusion avec le Terminal après, car ceci n'est à faire qu'une fois pour toute. Lorsque je recevrais les nouvelles données pour les années suivantes, c'est entre 100 et 200Mo. Il sera facile de traiter ce nouveau fichier pour le fusionner à la suite du gros. Ce message a été modifié par macmacmac - 24 Mar 2022, 12:19. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
24 Mar 2022, 23:44
Message
#5
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Si possible, je voudrais utiliser la méthode du glisser de fichier dans le Terminal pour déterminer le/les fichier/s à traiter. Si la commande de l'autre jour fait le job, il ne te reste qu'à apprendre à te "déplacer" dans le Terminal.L'expérience précédente, bien que très fonctionnelle m'oblige a avoir les fichiers dans un endroit et un nom définis,… ce qui est pour moi est très fastidieux. Ce n'est pas très compliqué, il te faudra principalement 3 commandes : Où suis-je ? Pour savoir où l'on est (ie. où le terminal "travaille" actuellement), on utilise pwd (pour Print Working Directory) : Code % pwd Je (ou plutôt ma fenetre Terminal) travaille actuellement sur le sous repertoire nicosa du repertoire Users. Le slash "/"montre l'imbrication : Users est le parent (le conteneur) de nicosa ; nicosa est dans le repertoire Users./Users/nicosa Qu'y-a-t'il / que contient-il ? Pour lister les fichiers et repertoire dans le repertoire courant : ls -l (ls pour list et l'option "-l" pour un affichage d'un element par ligne) Code % ls -l On voit donc ici 3 fichiers nommés fichier1, fichier2 et fichier3 dans le repertoire courant.total 0 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 fichier1 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 fichier2 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 fichier3 Les indications en début de ligne sont les droits associé à chaque fichier et le propriétaire et le groupe de ce fichier, la taille (0 dans mon cas car totalement vide) puis la date de dernière modifications (tu n'as pas trop à t'en soucier pour le moment) Monter /Descendre/Revenir Pour te déplacer vers un repertoire ou remonter dans le repertoire parent : c'est la commande cd (pour "Change Directory", soit "changer de repertoire"). Pour "descendre" dans un repertoire nommé MesBidules : Code % cd MesBidules Pour "descendre" d'un coup dans un sous-repertoire nommé sousRep1 lui-même dans MesBidules, on combien avec "/" (slash) : Code % cd MesBidules/sousRep1 Pour remonter dans le repertoire parent, on utilise la notation ".." (2 points de suite) : Code % cd .. Pour remonter de plusieurs niveaux, on "cumule" ces notations en les séparant par des slash : Code % cd ../.. Là c'était pour 2 niveaux, pour 3 niveaux, on utiliserait : Code % cd ../../.. etc... Revenir directement à la petite maison (mon repertoire "home"), on peut faire un cd vers "~" (tilde) : Code % cd ~ Avec ces 3 commandes, tu peux déjà te promener facilement. --------- Un exemple en pratique : Sur mon bureau, j'ai un repertoire nommé testRep contenant cette arborescence : Code MesBidules/ Je veux faire une commande sur fichier2.sousRep1/ fichier1 fichier2 fichier3 sousRep2/ img1.jpg img2.jpg img3.png AutresTrucs/ machins/ notesReunion musique/ son1.mp3 son2.mp3 J'ouvre un terminal et regarde où je suis : Code % pwd C'est mon "home" (le repertoire maison de mon utilisateur nommé "nicosa")./Users/nicosa Que contient ce repertoire home ? Code % ls -l Mon bureau s'appelle en réalité Desktop (mon OS est en anglais, peut-être cela sera different chez toi).total 0 drwx------@ 4 nicosa staff 128 Sep 7 2021 Applications drwx------+ 75 nicosa staff 2400 Mar 24 22:58 Desktop drwx------+ 142 nicosa staff 4544 Jan 28 10:39 Documents drwx------+ 1211 nicosa staff 38752 Mar 24 16:04 Downloads drwx------@ 73 nicosa staff 2336 Mar 18 10:40 Library drwx------ 11 nicosa staff 352 Sep 9 2021 Movies drwx------+ 5 nicosa staff 160 Sep 9 2021 Music drwx------+ 205 nicosa staff 6560 Jan 13 18:01 Pictures drwxr-x-wx+ 4 nicosa staff 128 Sep 7 2021 Public Je rentre (ou descends) dans le bureau : Code % cd Desktop % pwd /Users/nicosa/Desktop Que contient mon bureau ? Code % ls -l Ok, je vois mon repertoire nommé testRep (je sais que c'est un repertoire car sa ligne commence tout à gauche par un "d" comme Directory)total 148360 drwxr-xr-x+ 16 nicosa staff 512 Feb 6 22:11 FunJokes -rw-r--r--@ 1 nicosa staff 1045 Sep 7 2020 Quotes.rtf -rw-r--r--@ 1 nicosa staff 102970 Mar 15 13:37 Screenshot 2022-03-15 at 13.37.25.png -rw-r--r--@ 1 nicosa staff 349678 Mar 23 13:17 Screenshot 2022-03-23 at 13.16.56.png drwxr-xr-x 4 nicosa staff 128 Mar 24 22:56 testRep Je veux directement rejoindre le sous-repertoire sousRep1 : Code % cd testRep/MesBidules/sousRep1 % pwd /Users/nicosa/Desktop/testRep/MesBidules/sousRep1 J'y suis, je peux voir mes fichiers : Code % ls -l total 0 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 fichier1 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 fichier2 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:47 fichier3 Si besoin j'execute ma commande de remplacement ou autre sur un fichier : Code % sed -n -i '' '/Jamb/p' fichier2 Je peux remonter dans MesBidules, ou même mieux monter puis redescendre dans le sousRep2 : Code % cd ../sousRep2 % pwd /Users/nicosa/Desktop/testRep/MesBidules/sousRep2 % ls -l total 0 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 img1.jpg -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 img2.jpg -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 img3.png Si je suis un peu perdu, je retourne à mon repertoire "home" : Code % cd ~ % pwd /Users/nicosa Remarque : Si je connais dès le départ mon repertoire où se trouve mon fichier sur lequel je veux travailler, je peux même ne pas me soucier du repertoire courant et lancer la commande en utilisant le chemin absolu vers le fichier que je veux transformer : Code % cd Documents/Cloud/ Je lance ma commande depuis le repertoire Documents Cloud, alors que le fichier que je vise est dans un autre endroit.% pwd /Users/nicosa/Documents/Cloud % sed -n -i '' '/Jamb/p' /Users/nicosa/Desktop/testRep/MesBidules/sousRep1/fichier2 Après, si c'est dans une base de données relationnelle, le plus efficace et le plus simple à apprendre serait le SQL. Il a l'avantage d'être assez proche du language naturel (anglais) là où le shell, le python et consort sont assez cryptique... Si c'est du texte pur sur 5Go, le plus efficace à l'execution serait certainement les RegExp... Mais alors c'est assez hardcore à comprendre, apprendre et retenir.... -------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
25 Mar 2022, 02:42
Message
#6
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 355 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Un grand merci Nicosa pour tes explications très claires et pédagogiques.
Bien que tu confessais préférer un Terminal tout clavier : Le terminal (comme les commandes qu'on y lance) n'a pas vraiment vocation d'être utilisé "à la souris/trackpad". Il est probable que pour la plupart, la navigation dans le Finder soit quand même plus aisée qu'au clavier en ligne de commande. (c'est en partie possible, mais je ne saurais t'aider) Je comprends que macmacmac préfère utiliser le glisser-déposer d'une icône de fichier ou de répertoire depuis le Finder vers une fenêtre de Terminal. J'ai un peu regardé comment ça marche : — Ça introduit le chemin absolu, sans devoir s'occuper de la gestion des espaces et caractères accentués dans les noms de fichier. — Les dossiers gé(né)rés par le système (Library, Music, etc.) reçoivent toujours leur nom anglais, quelle que soit la langue courante. Exemples : Code Last login: Fri Mar 25 02:15:43 on ttys000 MBP2010:~ admin$ /Users/admin/Documents/Ecoconstruction/Contruire\ en\ paille/Construction\ Ballots\ de\ paille/Mémento-ConstructionenpailleV4.2.pdf /System/Library/Caches Il me semble que ça peut être utile pour une utilisation comme dans ta remarque ci-dessous (en n'oubliant pas de taper chaque fois une espace après la commande avant de lâcher l'icône du fichier dans le Terminal !) Une autre manière de faire, peut-être plus prudente ? serait d'utiliser le glisser-déposer pour se placer à l'endroit voulu, vérifier par une commande idoine qu'on est au bon endroit, puis seulement lancer la commande exécutoire. Qu'en penses-tu ? Pourrais-tu aider notre ami à utiliser cette méthode ? Si possible, je voudrais utiliser la méthode du glisser de fichier dans le Terminal pour déterminer le/les fichier/s à traiter. Si la commande de l'autre jour fait le job, il ne te reste qu'à apprendre à te "déplacer" dans le Terminal.Ce n'est pas très compliqué, il te faudra principalement 3 commandes : Où suis-je ? Pour savoir où l'on est (ie. où le terminal "travaille" actuellement), on utilise pwd (pour Print Working Directory) : Code % pwd […]/Users/nicosa Qu'y-a-t'il / que contient-il ? Pour lister les fichiers et répertoire dans le répertoire courant : ls -l (ls pour list et l'option "-l" pour un affichage d'un element par ligne) Code % ls -l […]total 0 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 fichier1 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 fichier2 -rw-r--r-- 1 nicosa staff 0 Mar 24 22:41 fichier3 Monter /Descendre/Revenir Pour te déplacer vers un répertoire ou remonter dans le répertoire parent : c'est la commande cd (pour "Change Directory", soit "changer de répertoire"). […] Avec ces 3 commandes, tu peux déjà te promener facilement. […] Remarque : Si je connais dès le départ mon répertoire où se trouve mon fichier sur lequel je veux travailler, je peux même ne pas me soucier du répertoire courant et lancer la commande en utilisant le chemin absolu vers le fichier que je veux transformer : Code % cd Documents/Cloud/ J% pwd /Users/nicosa/Documents/Cloud % sed -n -i '' '/Jamb/p' /Users/nicosa/Desktop/testRep/MesBidules/sousRep1/fichier2 -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
25 Mar 2022, 11:58
Message
#7
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Qu'en penses-tu ? En effet, bonne idée ! Pourrais-tu aider notre ami à utiliser cette méthode ? -- Méthode prudente (aka "better safe than sorry") --
-- Méthode sans filet (aka "trust me dude") --
[ Cadeau Bonux ] Le Terminal est doté de la fonction auto-completion (aussi nommée "command completion", ou encore "tab completion"). En gros, tu tapes le début d'une commande ou d'un nom de fichier, puis tu appuie sur la touche "tab(ulation)". Si une commande correspond, ou un fichier/repertoire dans le working directory correspond à ce début de nom, le terminal complète tout seul la commande ou le nom du fichier/repertoire (en respectant, du coup, la casse et l'extension le cas échéant) Par exemple, dans ce repertoire : Code % ls -l total 0 -rw-r--r-- 1 nicosa staff 0 Mar 25 10:15 monFichier1.txt -rw-r--r-- 1 nicosa staff 0 Mar 25 10:16 un2emeFichier.txt -rw-r--r--@ 1 nicosa staff 0 Mar 25 10:16 Alalah un troisième fichier avec des espaces et des accents dans le nom mais bon sang qui fait ça, il veut ma mort.dtc Pour faire une commande sur le 3e fichier dont le nom est "peu pratique", je tape juste ma commande ("cat " pour afficher le contenu du fichier) puis le début de "Alalah" et enfin la touche Tab. L'auto-completion se charge de mettre le nom complet : Code % cat Alalah\ un\ troisième\ fichier\ avec\ des\ espaces\ et\ des\ accents\ dans\ le\ nom\ mais\ bon\ sang\ qui\ fait\ ça,\ il\ veut\ ma\ mort.dtc On remarquera que, dans sa bonté immense, l'auto-completion aura pris soin d'échapper les espaces contenus dans le nom du fichier. (Sans quoi, la commande ne fonctionnera pas)^ Ici j'ai appuyé sur Tab -------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
25 Mar 2022, 14:20
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 355 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Merci pour lui. -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
25 Mar 2022, 17:15
Message
#9
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Je suis là!!! Je suis sur le coup!!!
Je suis complètement estomaqué par le courage et la quantité d'information. Je vais devoir faire un fichier avec ce contenu précieux. Comme l'a compris baron, le glissé/déposé est quelque chose de tellement facile, facile à faire mais surtout à comprendre. Merci, je me penche sur ton dernier message Nicosa, merci beaucoup. Ce message a été modifié par macmacmac - 25 Mar 2022, 17:16. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
25 Mar 2022, 17:41
Message
#10
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Magnifique Nicosa, merci.
Je sais maintenant «où je suis» et je peux voir ce qu'il y a dedans. Maintenant il me faudrait une réponse à ma question précédente si tu as toujours le courage. L'instruction "- une ligne de commande pour insérer un caractère en positions x,x,x,x,x" n'est pas claire peux tu préciser? Le s à positions me fait penser qu'il s'agit d'insérer un (même) caractère à plusieurs endroits dans la ligne.Ex. Insérer un # en 3e, 5e et 11e position. Ce n'est pas exactement ce que tu veux, c'est du python 3 que tu peux lancer avec le terminal si tu veux. Merci Phil J. Fry. Il est possible de modifier ton code en prenant en compte la demande ci-dessus stp, de pouvoir insérer un caractère à diverses positions? Sinon, comment j'utilise ceci? A coller dans le Terminal puis faire glisser le fichier? A coller dans le Terminal puis sauvegarder d'une façon précise? Il faut créer un script? Comment je sais en quelle position je dois insérer le caractère vu que les positions suivantes vont changer à chaque insertion? La position suivante est la nouvelle position en prenant en compte l'insertion précédente? Ou il faut rester sur la définition de la position d'insertion avant celles-ci et le Terminal sait où il doit ajouter l'insertion suivante? 🙏 Sinon, ce n'est quand même pas simple à comprendre ce code et surtout, je n'ai pas compris comment je devais l'utiliser. Jusqu'à présent, je collais la commande et je glissais le fichier, c'était quand même relativement plus accessible pour moi. Puis-je te donner les infos: supprimer/remplacer caractère position x insérer caractère 1 en position x, x insérer caractère 2 en position x, x, x, x, x, x supprimer tout ce qui est après le caractère en position x ? J'abuse? Mais là, j'ai vraiment du mal à suivre avec le code. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
25 Mar 2022, 17:53
Message
#11
|
|
The Original Martian & DBCM Groupe : Modérateurs Messages : 6 554 Inscrit : 25 May 2004 Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns Membre no 19 190 |
Est-ce que tu peux poster une ou deux lignes d'exemples, et ce que tu veux en faire ?
-------------------- MBP 16" Sonoma 14.4.1 MBA 13" Sonoma 14.4.1
DBCM III Disciple du MSV Team BOINC Macbidouille But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D |
|
|
25 Mar 2022, 20:04
Message
#12
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Est-ce que tu peux poster une ou deux lignes d'exemples, et ce que tu veux en faire ? Ça va certainement aider à mieux comprendre. (je remplace des infos (ce n'est pas un secret, mais par simple discrétion) ligne avant/après CODE NOMxxxxx*prénom/ 21999092075000PARIS FRANCE 20201111991324505 NOMxxxxx*prénom/ 1999.09.20*75000*PARIS *FRANCE *2020.11.11 A faire en priorité dans le Terminal «avant» les manipulations et fusion des données - supprimer caractère position 81 - insérer «.» après positions 85, 87 - insérer «*» après positions 89, 94 - insérer «*» avant positions 125, 155 - insérer «.» après positions 158, 160 - supprimer la fin de ligne à partir de la position 163 J'ai encore d'autre manipulations à faire, mais je ne veux pas les automatiser, je veux faire ceci avec le Terminal car c'est impossible pour moi autrement, c'est trop gros pour que je fasse joujou avec Excel pour certaines parties, etc… mais je dois garder du travail manuel, c'est pour faire de la rééducation en quelque sorte.J'ai besoin de rester actif et faire travailler mes méninges. Ce message a été modifié par macmacmac - 26 Mar 2022, 16:37. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
26 Mar 2022, 00:13
Message
#13
|
|
The Original Martian & DBCM Groupe : Modérateurs Messages : 6 554 Inscrit : 25 May 2004 Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns Membre no 19 190 |
Il y a beaucoup de blancs dans ta ligne.... et les indices changent en insérant, supprimant des caractères ... ce qui est très difficile à débugger ...
Python peut fonctionner dans le terminal, mais c'est pénible. Pour l'utiliser, le plus simple est de télécharger l'environnement intégré IDLE chez python.org, et de travailler dedans. Une solution pour un petit fichier , et qui enlève le trop plein de blanc (on pourra en rajouter après si tu veux): Code with open ('monfichier.txt') as f:
meslignes = f.readlines() for i in meslignes : [nomprenom,reste]=i.split('/') # On découpe le nomprénom et le reste à la barre oblique [s0,s1,s2]=reste.split() # on découpe le reste en 3 morceaux s0 (date+lieu), s1 (pays) et s2 (date) print (nomprenom+'/ '+s0[1:5]+'.'+s0[5:7]+'.'+s0[7:9]+'*'+s0[9:14]+'*'+s0[14:]+ ' *'+s1+' *'+s2[0:4]+'.'+s2[4:6]+'.'+s2[6:8]) # On imprime le tout formatté -------------------- MBP 16" Sonoma 14.4.1 MBA 13" Sonoma 14.4.1
DBCM III Disciple du MSV Team BOINC Macbidouille But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D |
|
|
26 Mar 2022, 00:28
Message
#14
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Hello,
Bon, voila une solution, mais je pense que ça ne marchera peut-être pas chez toi : il n'est pas sûr que les espaces (les blancs) entre les differents valeurs ne soient pas en fait des tabulations (certains programmes les "représentent" à l'affichage par 2 ou 3 espaces consecutifs, mais pour une commande shell ce ne sont pas les mêmes caractères...). Mon code est "un peu con" : il se base sur la position des caractères pas leur contenu. J'ai dû recréer le fichier de test car en copiant-collant ça mettait des tabulations au lieu des espaces. Si ce ne sont pas les bonnes positions (dans ton explication ou dans le fichier d'exemple que j'ai re-créé) ça va tout décaler. Mon fichier de test : Code % cat file1 (je ne sais pas comment le site va le montrer, mais les blancs sont bien des espaces)NOMxxxxx*prénom/ 21999092075000PARIS FRANCE 20201111991324505 sqkdfhlqsqosduhfdvsvs 31967123077230JSDJSD SFBSDFBF 20130413991324505 opisbvqkbvksqbv/ 62001042391034ERJEN ZIGNBN 20011115991324505 oiqosuqohbsvbsd/ 11974030205431EZDDFV UZETKISFHG 20070304991324505 Le fichier de commande : Code % cat script.sh (rappel : la commande cat affiche le contenu du fichier. Il va te falloir créer un fichier avec le même contenu : c'est à dire tout sauf la 1e ligne qui commence par la command cat)#!/bin/zsh filename=$1 sed -E 's/(^.{80}).(.{4})(.{2})(.{2})(.{5})(.{30})(.{30})(.{8}).*$/\1\2.\3.\4*\5*\6*\7*\8_/' $filename | sed -E 's/(^.{163})(.{2})(.{2}).*$/\1.\2.\3/' exit Je n'explique pas les 2 commandes "sed" consécutives, ça serait trop laborieux. Il faut le rendre executable : Code % chmod u+x script.sh (je change le mode du fichier pour que le user se voit ajouter (+) le droit d'execution)Puis je lance le script sur le fichier : Code % ./script.sh file1 > file2 Les modifs faites par script.sh à partir de file1 sont envoyées dans un fichier file2.On peut voir le contenu de file2 : Code % cat file2 NOMxxxxx*prénom/ 1999.09.20*75000*PARIS *FRANCE *2020.11.11 sqkdfhlqsqosduhfdvsvs 1967.12.30*77230*JSDJSD *SFBSDFBF *2013.04.13 opisbvqkbvksqbv/ 2001.04.23*91034*ERJEN *ZIGNBN *2001.11.15 oiqosuqohbsvbsd/ 1974.03.02*05431*EZDDFV *UZETKISFHG *2007.03.04 Autre point, tes données semblent venir d'une base de données relationnelle : Le plus simple serait de les recharger dans une base relationnelle (d'une seule table) sur ton ordi, car là on pourrait écrire un ordre de mise à jour en SQL, qui ferait un update en se basant sur les 4 colonnes de ta table :
Pour manipuler des données tabulaires (donc dans une table, avec des colonnes) rien de mieux que le SQL => C'est la raison d'être de ce language. -------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
26 Mar 2022, 11:31
Message
#15
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Hello,
Oui, il y a énormément d'espaces dans les fichiers, mais ils sont livrés comme ceci. Mais dans ce que j'ai collé, bizarrement les espaces sont larges! 😳 Je remplace ceci par des tabulations ensuite, mais je dois le faire à la fin seulement. Merci pour ceci, ce que je vois ton exemple Nicosa est tout à fait ce que je veux obtenir à ce stade-là. Merci infiniment, je vais voir si maintenant je vais réussir à mettre en pratique. Phil J. Fry, merci aussi pour ceci, je ne dois pas le faire avant ce que je désirais avoir, mais peut-être que je pourrais le faire après. Je vais voir tout ça. Merci à vous deux. Laissez-moi du temps avant de me demander des nouvelles! 😂 Ce message a été modifié par macmacmac - 26 Mar 2022, 11:33. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
26 Mar 2022, 21:16
Message
#16
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Merci Nicosa,
Ça ne marchait pas, mais je crois avoir trouvé pourquoi. En voulant faire une tentative sur un des fichiers avant la fusion, ça a fonctionné. Mais ça ne semble par marché la totalité du fichier, c'est à dire tous les fichiers fusionné en un seul. Du coup, je peux utiliser la ligne de commande, merci beaucoup. Mais maintenant je vais devoir voir si j'arrive à faire un sort (tri) par la première lettre une fois les fichiers fusionnés. Merci de ton aide. Ce message a été modifié par macmacmac - 27 Mar 2022, 16:48. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
27 Mar 2022, 19:26
Message
#17
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Mais maintenant je vais devoir voir si j'arrive à faire un sort (tri) par la première lettre une fois les fichiers fusionnés. Travail typique d'une base de donnée : selctionner des lignes et les fournir triées selon l'ordre de ton choix !Merci de ton aide. Ravi que cela t'aide.-------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
27 Mar 2022, 20:33
Message
#18
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Mais maintenant je vais devoir voir si j'arrive à faire un sort (tri) par la première lettre une fois les fichiers fusionnés. Travail typique d'une base de donnée : selctionner des lignes et les fournir triées selon l'ordre de ton choix !Merci de ton aide. Ravi que cela t'aide.Je ne vais pas faire de tries à plusieurs reprises suivants telle ou telle colonne. Juste un ordre alphabétique sur la 1re lettre de la ligne, juste regrouper les noms. Et j'ai appris des choses sympa pour débuter, comment savoir OÙ je travaille, travailler/afficher dans le Terminal, travailler avec le Terminal en générant un fichier de sortie, etc… C'est basic, mais pour moi, c'est le minimum vital à connaitre et comprendre. Alors Nicosa, je n'ai pas utilisé ta méthode avec le fichier de commande, ça ne me convenait pas, j'utilise juste la ligne de commande avec le glissé/déposé des fichiers, bien plus pratique et facile pour moi. Maintenant, je vais faire quelques manipulations «à la main» pour faire travailler les méninges et après la petite commande pour fusionner tous les fichiers et une autre «sort» pour une présentation alphabétique. Après, je pourrais avancer dans le travail avec ces données au propre, j'ai un an avant l'arrivée des fichiers de 2022. Merci encore! 🙏 La seule chose que je n'ai pas réussi à trouver c'est la suppression des espaces en doubles, à part le chercher/remplacer. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
27 Mar 2022, 21:29
Message
#19
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Me revoilà…
Ça fonctionne très bien, je n'ai pas encore «mouliné» tous les fichiers, mais quand j'arrive à un, le Terminal me retourne sed: RE error: illegal byte sequence Et le fichier résultant est incomplet. As-tu une idée??? Parce que, je ne te cache pas qu'à mon niveau de connaissances, je ne vois pas de solution que de supprimer des blocs de lignes en renouvelant la commande jusqu'à ce que je trouve la ligne qui fou la merde. Ce «petit» fichier contient 437856 lignes… Si je pouvais avancer un peu plus vite que de faire bout par bout… 😭 Une idée? Que de chercher à la main? Merci. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
28 Mar 2022, 13:04
Message
#20
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Ça fonctionne très bien, je n'ai pas encore «mouliné» tous les fichiers, mais quand j'arrive à un, le Terminal me retourne Est-ce qu'il t'affiches des lignes avant l'erreur ? lorsque tu n'utilises pas le "renvoi vers file2"sed: RE error: illegal byte sequence Et le fichier résultant est incomplet. As-tu une idée??? Auquel cas, la ligne en erreur est celle qui vient après la dernière affichée. Il faudrait voir si elle ne contient pas de caractère un peu spéciaux (ce qui n'est pas toujours visible dans le terminal ou dans un editeur de texte...) Pour être sûr qu'elle est la coupable, tu ne gardes que la ligne en question dans un fichier à part, et tu testes la commandes sur ce petit fichier. Comme je disais, le code dans le "sed" est un peu con. Si on savait ce qu'on cherche, on pourrai être plus fin, mais c'est plus long... -------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
28 Mar 2022, 13:47
Message
#21
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Ça fonctionne très bien, je n'ai pas encore «mouliné» tous les fichiers, mais quand j'arrive à un, le Terminal me retourne Est-ce qu'il t'affiches des lignes avant l'erreur ? lorsque tu n'utilises pas le "renvoi vers file2"sed: RE error: illegal byte sequence Et le fichier résultant est incomplet. As-tu une idée??? Auquel cas, la ligne en erreur est celle qui vient après la dernière affichée. Il faudrait voir si elle ne contient pas de caractère un peu spéciaux (ce qui n'est pas toujours visible dans le terminal ou dans un editeur de texte...) Pour être sûr qu'elle est la coupable, tu ne gardes que la ligne en question dans un fichier à part, et tu testes la commandes sur ce petit fichier. Comme je disais, le code dans le "sed" est un peu con. Si on savait ce qu'on cherche, on pourrai être plus fin, mais c'est plus long... Alors, je viens de regarde, après la dernière ligne écrite, dans le fichier source, il y a à deux endroits ce tiret haut (que je n'ai jamais vu d'ailleurs) Code 1980100913055¯14/322 N 1980070313055¯11/10 N Après suppression de celui-ci il n'y a plus eu d'erreur dans le Terminal. Ce message a été modifié par macmacmac - 28 Mar 2022, 14:05. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
28 Mar 2022, 14:19
Message
#22
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Après suppression de celui-ci il n'y a plus eu d'erreur dans le Terminal. -------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
30 Mar 2022, 10:34
Message
#23
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Après suppression de celui-ci il n'y a plus eu d'erreur dans le Terminal. Bizarrement, j'ai la même chose sur un autre fichier plus loin, mais il n'y a pas la présence de ce caractère. Je suis en train de chercher par élimination de segment, c'est assez pénible, mais surtout long! -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
30 Mar 2022, 14:54
Message
#24
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Nicosa,
Il n'y a pas moyen de faire accepter TOUS les caractères? Car ces caractères ne passent pas par exemple: Code ö ce qui me dérange un peu car non seulement je dois les trouver à la main pour les remplacer à chaque fois que le Terminal fait une erreur,Ó É Å î ì Ä à ∂ ‡ ‰ ˆ ‚ mais les remplacer pour enlever les accents m'ennuie un peu dans la mesure où je ne respecte plus l'orthographe. Par exemple Code LöTSCHENBACH je préfère qu'il reste ö (même s'il na pas été saisi en majuscule) que de devoir le remplacer par un O sans l'accent.Possible? Une idée pour contourner ceci? Merci. -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
30 Mar 2022, 18:09
Message
#25
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 355 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Depuis qu'on a abandonné le codage ASCII (et ses dérivés comme MacRoman) qui acceptait seulement 128 ou 256 caractères au profit d'Unicode (avec tous les caractères imaginables, < 65536), les systèmes d'exploitation et les logiciels ont parfois une problème de normalisation des caractères.
En gros, un même caractère – p.ex. é – peut être encodé de deux manières ( ´ + e ou é) et pour la machine ce n'est pas la même chose. Je ne m'y connais guère mais ça ne semble pas si facile à gérer… Peut-être suffit-il toutefois simplement de déclarer quel codage doit être utilisé ? Le phénomène est documenté dans cet article : • https://eclecticlight.co/2021/05/08/explain...ation-and-apfs/ Et plus généralement : • https://eclecticlight.co/?s=normali Mais ça dépasse mes compétences. -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
30 Mar 2022, 19:29
Message
#26
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Depuis qu'on a abandonné le codage ASCII (et ses dérivés comme MacRoman) qui acceptait seulement 128 ou 256 caractères au profit d'Unicode (avec tous les caractères imaginables, < 65536), les systèmes d'exploitation et les logiciels ont parfois une problème de normalisation des caractères. En gros, un même caractère – p.ex. é – peut être encodé de deux manières ( ´ + e ou é) et pour la machine ce n'est pas la même chose. Je ne m'y connais guère mais ça ne semble pas si facile à gérer… Peut-être suffit-il toutefois simplement de déclarer quel codage doit être utilisé ? Le phénomène est documenté dans cet article : • https://eclecticlight.co/2021/05/08/explain...ation-and-apfs/ Et plus généralement : • https://eclecticlight.co/?s=normali Mais ça dépasse mes compétences. Ouais, ben… j'ai compris ce que tu dis baron, mais je ne comprends rien aux pages 😂 -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
30 Mar 2022, 19:52
Message
#27
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 355 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Je suis déjà bien content d'avoir pu être clair.
Pour le reste, c'était surtout pour donner à d'autres plus habiles que nous de possibles éléments de réflexion… -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
30 Mar 2022, 20:36
Message
#28
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
Je suis déjà bien content d'avoir pu être clair. Pour le reste, c'était surtout pour donner à d'autres plus habiles que nous de possibles éléments de réflexion… Tu as parlé d'encodage, mais il y a certainement déjà un problème là peut-être. En effet, je viens de faire des essais et je découvre que certains caractères à accent différents suivant comment c'est ouvert (normal). Mais cependant, laissez TexteEdit faire tout seul l'ouverture en mode automatique n'a pas l'air ok. Les fichiers sources sont des fichiers .txt Dans un fichier je trouve BUÒUEL NAVARRA ESPAGNE Ors, ça devrait être BUÑUEL Alors j'ai essayé d'ouvrir dans tout plein de versions d'encoage, mais jamais je n'obtiens le bon résultat à l'ouverture. Dans TexteWrangler, j'ouvre le fichier, je repère la ligne et je vais dans le menu: Reopen Using Encoding Je choisis western iso latin 1 > BUñUEL western iso latin 9 > BUñUEL western mac os roman > BUÒUEL western windows latin 1 > BUñUEL Sinon, j'ai découvert que si je faisais lire le fichier dans le Terminal, j'obtenais BUñUEL Il manque la majuscule, certes, mais ceci est déjà juste! je fais des petites manipulations, réflexions et déductions… -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
30 Mar 2022, 21:24
Message
#29
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 026 Inscrit : 2 May 2007 Lieu : Région Parisienne (91) Membre no 85 838 |
Car ces caractères ne passent pas par exemple: Code ö ce qui me dérange un peu car non seulement je dois les trouver à la main pour les remplacer à chaque fois que le Terminal fait une erreur,Ó É Å î ì Ä à ∂ ‡ ‰ ˆ ‚ mais les remplacer pour enlever les accents m'ennuie un peu dans la mesure où je ne respecte plus l'orthographe. Je pense que c'est p'tet pas que ces caractères, mais le fait que ton fichier soit encodé d'une façon "differente". J'ai ajouté une ligne dans mon test (la 5e) avec les caractères que tu cites (ajout par copier-coller), et ça fonctionne sans problème : Code % cat file1 NOMxxxxx*prénom/ 21999092075000PARIS FRANCE 20201111991324505 sqkdfhlqsqosduhfdvsvs 31967123077230JSDJSD SFBSDFBF 20130413991324505 opisbvqkbvksqbv/ 62001042391034ERJEN ZIGNBN 20011115991324505 oiqosuqohbsvbsd/ 11974030205431EZDDFV UZETKISFHG 20070304991324505 oiqosÇqoÊhbÆsvbsd/ 11974030205431EZDDFV UZETKISFHG 20070304991324505 newöÓÉÅîìÄà∂‡‰ˆ‚x/ 11974030205431EZDDFV UZETKISFHG 20070304991324505 nicosa@nicosambp-horus test % ./scriptdebug.sh file1 > file2 nicosa@nicosambp-horus test % cat file2 NOMxxxxx*prénom/ 1999.09.20*75000*PARIS *FRANCE *2020.11.11 sqkdfhlqsqosduhfdvsvs 1967.12.30*77230*JSDJSD *SFBSDFBF *2013.04.13 opisbvqkbvksqbv/ 2001.04.23*91034*ERJEN *ZIGNBN *2001.11.15 oiqosuqohbsvbsd/ 1974.03.02*05431*EZDDFV *UZETKISFHG *2007.03.04 oiqosÇqoÊhbÆsvbsd/ 1974.03.02*05431*EZDDFV *UZETKISFHG *2007.03.04 newöÓÉÅîìÄà∂‡‰ˆ‚x/ 1974.03.02*05431*EZDDFV *UZETKISFHG *2007.03.04 [edit] Je viens de voir que la commande "file" peut identifier certains encodage. Dans mon cas mes fichiers sont en UTF-8. Code % file file1 file1: UTF-8 Unicode text nicosa@nicosambp-horus test % file file2 file2: UTF-8 Unicode text (tu tapes juste file puis espace et tu glisse le fichier dans le terminal, puis Enter) [edit2] il y a une commande iconv qui peut faire la conversion, mais il nous faut savoir quel est l'encodage de départ. Ce message a été modifié par Nicosa - 30 Mar 2022, 21:51. -------------------- Whoever fights monsters should see to it that in the process he does not become a monster; -------------------------------------------------------------------------------------------------------------------------------And when you look long into an abyss, the abyss also looks into you. - Friedrich Nietzsche -(issue de la préface de la novélisation "The Abyss" d'Orson Scott Card depuis le film eponyme) [refurb] MacBook Pro 13"(early2019) , QuadCore 2.7GHz, 16Go de RAM, 512Go, sous OSX 10.14 Mojave [refurb] MacMini Core2Duo 2.0GHz (early 2009), 1Go de RAM, DD 120Go 5400rpm, sous OSX 10.6.3 Snow Lepard + Mighty Mouse BT + Clavier BT "Alu" |
|
|
31 Mar 2022, 01:59
Message
#30
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 708 Inscrit : 18 Nov 2004 Lieu : Suisse Membre no 27 214 |
(tu tapes juste file puis espace et tu glisse le fichier dans le terminal, puis Enter) ASCII text, with CRLF line terminators J'ai de nouvelles info, je dois conserver les références en fin de ligne et ne plus les supprimer. Je te demandais en dernier - supprimer la fin de ligne à partir de la position 163 Peux-tu STP me refaire cette ligne en annulant cette suppression et en ajoutant deux * en plus de ceux qui s'ajoutaient avant Code sed -E 's/(^.{80}).(.{4})(.{2})(.{2})(.{5})(.{30})(.{30})(.{8}).*$/\1\2.\3.\4*\5*\6*\7*\8_/' _MON_FICHIER_IN_.txt | sed -E 's/(^.{163})(.{2})(.{2}).*$/\1.\2.\3/' > _MON_FICHIER_OUT_.txt avant/après Code NOMxxxxx*prénom/ 21999092075000PARIS FRANCE 20201111991324505_ICI IL PEUT Y AVOIR D'AUTRES INFOS_ NOMxxxxx*prénom/ 1999.09.20*75000*PARIS *FRANCE *2020.11.11*99132*4505_ICI IL PEUT Y AVOIR D'AUTRES INFOS_ Merci infiniment de ton aide/soutien/support!!! 🙏 Tout ceci n'est pas urgent, ce n'est pas un JOB mais un travail personnel PS En passant d'entrer avec le Terminal pour lire les fichiers comme je le disais, je n'ai plus une seule erreur dans les commandes du Terminal. NB Je passe un de ces temps à faire ces messages, c'est carrément de la mise en page pour que ce soit clair, car si on met tout en texte brut… -------------------- Mac mini M2 8C CPU/10C GPU/8Go RAM - OS Sonoma(last)
Macbook Pro (mi-2012) 2.9GHz Intel Core i7 - 16Go RAM - OS Sonoma(last) Mac mini (Late 2012) 2.5 GHz Intel Core i5 - 4Go RAM - OS Sonoma(last) J'ai été hospitalisé, je ne suis pas con, encore lucide, mais l'info n'est pas facile à assimiler. Alors merci de votre clarté et surtout patience avec moi. |
|
|
Nous sommes le : 25th April 2024 - 18:43 |