10.13 High Sierra Comment copier ou exporter les notes

Bonjour, je reviens après quelques jours d'absence et je remercie sinbad21 et ecatomb pour leur implication, sérieux et bonnes solutions. En effet la formule "
ls -tr *.md > ../liste.txt
while read line; do cat "$line"; done < ../liste.txt > ../cat.md" a bien rempli son office et le traitement a permis de tout remettre en place pour un dossier. Quant au 2 ième dossier, il va me falloir : ou modifier chaque fichiers pour y adjoindre la date de création et ensuite appliquer la formule ou trouver une formule qui puisse le faire automatiquement.

Dans un premier temps j'ai rangé le dossier sur les dates de création mais quand je passe la formule citée je retrouve les fichiers mélangés.
Pour sinbad21, le script perl voici ce que j'ai à l'écran :
chmod +x /Users/michelxxxxx/Desktop/sort.command
michelxxxxx@iMac-de-Michel ~ % cd ~/Desktop/ ; ./sort.command
./sort.command: line 1: {rtf1ansiansicpg1252cocoartf2513: command not found
./sort.command: line 2: syntax error near unexpected token `}'
./sort.command: line 2: `\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fmodern\fcharset0 Courier;}'
michelxxxxx@iMac-de-Michel Desktop %

Je vais essayer de regarder de plus près mais le Terminal est encore une grande inconnue pour moi. @+
 
Si ça se trouve Perl n'est pas installé sur ton système, tout simplement. Si tu tapes man perl et que tu obtiens "no manual entry for perl" c'est qu'il n'est pas installé. Dans ce cas oublie ce script, d'autant que celui d'@ecatomb marche.
 
Pour le 2ème dossier, comment veux-tu trier les fichiers ? Du plus ancien créé au plus récent ?
 
sinbad21 Pour perl :
Bloc de code:
NAME
       perl - The Perl 5 language interpreter

SYNOPSIS
       perl [ -sTtuUWX ]      [ -hv ] [ -V[:configvar] ]
            [ -cw ] [ -d[t][:debugger] ] [ -D[number/list] ]
            [ -pna ] [ -Fpattern ] [ -l[octal] ] [ -0[octal/hexadecimal] ]
            [ -Idir ] [ -m[-]module ] [ -M[-]'module...' ] [ -f ]
            [ -C [number/list] ]      [ -S ]      [ -x[dir] ]
            [ -i[extension] ]
            [ [-e|-E] 'command' ] [ -- ] [ programfile ] [ argument ]...

       For more information on these options, you can run "perldoc perlrun".

GETTING HELP
       The perldoc program gives you access to all the documentation that
       comes with Perl.  You can get more documentation, tutorials and
       community support online at <http://www.perl.org/>.

       If you're new to Perl, you should start by running "perldoc perlintro",
       which is a general intro for beginners and provides some background to

ecatomb oui j'aimerai les classer du plus ancien au plus nouveau, ensuite il me sera facile de relier les 2 fichiers et d'obtenir un seul document, complet et par ordre chronologique.
@+
 
Dernière édition par un modérateur:
Tant qu'à faire, en une seule ligne cette fois-ci. Cela devrait être bon :coucou:
Bloc de code:
ls -U *.md | while read line; do cat "$line"; done > ../cat.md
 
Re, je viens de refaire la procédure pour mon dernier dossier :
1/ importer avec exporter 2.1.4, création d'un dossier Notes comprenant mes fichiers en .md
2/ cd notes puis 'find . -type f -name '*' -exec cat {} \; >../cat.md' et création cat.md
3/ je copie dans terminal :"ls -U *.md | while read line; do cat "$line"; done > ../cat.md"
et voilà le résultat :
michelXXX@iMac-de-Michel ~ % ls -U *.md | while read line; do cat "$line"; done > ../cat.md
zsh: permission denied: ../cat.md
michelXXXX@iMac-de-Michel ~ %
et si je commence par cd voila :
michelxxx@iMac-de-Michel ~ % cd /Users/michelxxx/Desktop/cat.md
cd: not a directory: /Users/michelxxx/Desktop/cat.md
michelxxx@iMac-de-Michel ~ %

Ais-je omis une étape ou mal fait la procédure ? D'avance merci pour vos conseils.
 
Donc un problème d'écriture dans le répertoire parent.
Bloc de code:
zsh: permission denied: ../cat.md

Où se trouve tes fichiers md ? Dans le répertoire "notes" ?
 
Encore un autre essai après avoir crée Notes, dans le terminal j'ai fait cd "Notes" puis appliquer la dernière formule :
ls -U *.md | while read line; do cat "$line"; done > ../cat.md
et la réponse de terminal :
michelvvvvv@iMac-de-Michel ~ % cd /Users/michelvvvv/Desktop/Notes
michelvvvv@iMac-de-Michel Notes % ls -U *.md | while read line; do cat "$line"; done > ../cat.md
ls: illegal option --
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]
michelvvvvv@iMac-de-Michel Notes %

les fichiers .md sont effectivement dans Notes
 
Bizarre, tu dois avoir une erreur dans ton copier-coller. Surtout que le message indique bien que l'option U est valide chez toi :banghead:

Fait juste la commande suivante pour voir :
Bloc de code:
ls -U *.md

Résultat chez moi :
Bloc de code:
$ ls -U *.md
a.md    b.md    c.md
 
Et dans le dossier Notes j'ai classé les fichiers par la date de modification car la date de création que j'y trouve c'est celle de la transformation depuis Exporter.
 
Donc la commande fonctionne :p
Réessaye la commande complète

Mais bon, si c'est classé par date de modification, l'ancienne est suffisante. Pas besoin de cette nouvelle.
 
voila le terminal :
michelccc@iMac-de-Michel ~ % cd /Users/michelccc/Desktop/Notes
michelccc@iMac-de-Michel Notes % ls -U *.md | while read line; do cat "$line"; done > ../cat.md
ls: illegal option --
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]
michelccc@iMac-de-Michel Notes %
de le fichier cat.md est vide !
 
Le terminal indique que le "ls -U *.md" ne fonctionne pas car tu utilises un mauvais paramètre. Or tu l'as testé ensuite seul et ça fonctionne bien.

Si c'était le cas, le mauvais paramètre apparaitrait après le "--" (comme le z ici)
Bloc de code:
$ ls -z *
ls: illegal option -- z
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]

C'est donc que tu as sans doute un caractère invisible de copié dans la commande.

J'ai retesté la commande en faisant un copier-coller de celle posté sur le forum, pas de problème.
Tant qu'à faire, en une seule ligne cette fois-ci. Cela devrait être bon :coucou:
Bloc de code:
ls -U *.md | while read line; do cat "$line"; done > ../cat.md

Sinon, fait ceci. C'est exactement pareil mais en deux lignes.
Bloc de code:
ls -U *.md > ../liste.txt
while read line; do cat "$line"; done < ../liste.txt > ../cat.md
 
je viens de faire les 2 solutions en ayant renommer mon dossier en lire et copier coller les 2 formules :
michelz@iMac-de-Michel ~ % cd /Users/michelz/Desktop/lire
michelz@iMac-de-Michel lire % ls -U *.md > ../liste.txt
while read line; do cat "$line"; done < ../liste.txt > ../cat.md
ls: illegal option --
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]
michelz@iMac-de-Michel lire %
et toujours la même réponse illégal option

et si certaine ligne commencait par un "space" c'est peut-être ça car je ne vois pas l'espace dans les critères.

et les chiffres ne sont pas pris en compte ?

sur ce dossier, il me semble qu'il n'y a pas de 'titre', c'est le texte directement.

d'autre part, ces notes ont été crées sur un samsung mais je ne pense pas que cela ai de l'importance alors que l'autre dossier a été créé sur iPhone.
 
Dernière édition par un modérateur:
Quand je parle d'un caractère invisible, c'est un caractère autre que le espace mais qui n'affiche rien à l'écran (même pas un espace). Des espaces ne posent pas de problème, exemple :
Bloc de code:
$      ls      -l
total 0
drwx------@  3 ...

EN tout cas, tu as clairement un problème lorsque tu fais ton copier-coller...
Les deux lignes de commandes s'affichent comme si cela n'en était qu'une seule :
Bloc de code:
michelz@iMac-de-Michel lire % ls -U *.md > ../liste.txt
while read line; do cat "$line"; done < ../liste.txt > ../cat.md
ls: illegal option --
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]
michelz@iMac-de-Michel lire %

Voici ce que tu devrais avoir (si la commande ls était vraiment hs). Comme tu vois, il y a l'erreur d'affiché avant la deuxième ligne de commande.
Bloc de code:
[ecatomb@~/Downloads] $ ls -z *.md > ../liste.txt
ls: illegal option -- z
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]
[ecatomb@~/Downloads] $ while read line; do cat "$line"; done < ../liste.txt > ../cat.md


Donc on va faire en deux fois et tape les commandes à la main dans le terminal (au moins pour le ls)
Bloc de code:
cd /Users/michelz/Desktop/lire
Bloc de code:
ls -U *.md > ../liste.txt
Bloc de code:
while read line; do cat "$line"; done < ../liste.txt > ../cat.md
 
j'ai fait cd avec mon fichier puis tapez au clavier le premier bloc de commande et ensuite le 2ième. Voilà :
michel@iMac-de-Michel lire % ls -U *.md > ../liste.txt
ls: illegal option --
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]
michel@iMac-de-Michel lire % while read line; do cat "$line"; done < ../liste.txt > ../cat.md

et le cat.md est vide. Comment puis je faire apparaître les caractères invisible dans des fichiers ? Onyx fait apparaître les dossiers et fichiers mais pas les caractères.
 
Avec Word, j'ai affiché les caractères invisibles de la version .txt et lise à part les points pour espaces et le pilcrow je n'ai rien vu d'autres.
 
j'ai fait cd avec mon fichier puis tapez au clavier le premier bloc de commande et ensuite le 2ième. Voilà :
michel@iMac-de-Michel lire % ls -U *.md > ../liste.txt
ls: illegal option --
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]
michel@iMac-de-Michel lire % while read line; do cat "$line"; done < ../liste.txt > ../cat.md

et le cat.md est vide. Comment puis je faire apparaître les caractères invisible dans des fichiers ? Onyx fait apparaître les dossiers et fichiers mais pas les caractères.
Vu que la première commande ne fonctionne pas. Le fichier "liste.txt" est vide. C'est donc normal que le cat.md soit ensuite vide. Pas besoin de passer la 2ème commande tant que la première ne fonctionne pas...

Les caractères invisibles ne sont pas dans les fichiers, mais dans la commande...

Pour récapituler :

1 - La commande suivante fonctionne (option t & r de la commande ls) :
Celui-ci marchera normalement sans problème avec le nom des fichiers
Bloc de code:
ls -tr *.md > ../liste.txt
while read line; do cat "$line"; done < ../liste.txt > ../cat.md

Par contre, il ne prend en compte que les fichiers dans le répertoire courant et pas les sous-répertoires...

2 - la commande "ls -U" fonctionne :
Bizarre, tu dois avoir une erreur dans ton copier-coller. Surtout que le message indique bien que l'option U est valide chez toi :banghead:

Fait juste la commande suivante pour voir :
Bloc de code:
ls -U *.md

Résultat chez moi :
Bloc de code:
$ ls -U *.md
a.md    b.md    c.md
résultat ici : cat-utf8.md cat.md

3 - la commande "ls -U *.md > ../liste.txt" ne fonctionne pas chez toi et t'affiche l'erreur suivante (précisant au passage que l'option U est bien utilisable) :
Bloc de code:
ls: illegal option --
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]

... à part venir chez toi et taper la commande à la main pour comprendre l'origine du problème, je donne ma langue au chat

Tu peux toujours taper à nouveau la commande "ls -U *.md" et la lancer vu qu'elle marche sans problème chez toi.
Une fois qu'elle a fonctionné, tu appuie sur la touche "haut" du clavier pour rappeler cette commande et ensuite rajouter le " > ../liste.txt" afin d'avoir "ls -U *.md > ../liste.txt"

Si c'est toujours ko... ben fait une copie d'écran au lieu de marquer l'erreur ici. Peut-être que ça me donnera une idée.
 
@ecatomb
A tout hasard, j'ai renommé les fichiers : format, compteur + a, fichiers commencé Num à 1.
Ensuite cd puis la formule complète et le cat.md a été crée, il me reste juste à vérifier les dates ou tout au moins avoir la même liste que dans mes notes :
"michel@iMac-de-Michel ~ % cd /Users/michelberger/Desktop/Mes
michel@iMac-de-Michel Mes % ls -tr *.md > ../liste.txt
while read line; do cat "$line"; done < ../liste.txt > ../cat.md
michel@iMac-de-Michel Mes % " Il devait y avoir, quelque part, un caractère ou un début de message qui coinçait !

Une rapide vérification de quelques fichiers montre qu'il n'y a pas eu de changement de place à priori.
Je te remercie @ecatomb pour ta constance devant mon manque de connaissance et je pense que c'est terminé pour moi.

Peut-être sur d'autres sujets @+ Have a good day.