J'ai un grand fichier de séquence avec 'Ç' comme délimiteur. Nous devons diviser à chaque 40 'Ç' dans une nouvelle ligne.Comment insérer n après chaque nième délimiteur sans "problème de mémoire" dans Bash
Nous avons essayé d'utiliser la commande perl/cut, mais nous obtenons "out of memory" erreur, parce que c'est un énorme fichier et la lecture/écriture arrive à la fois.
donc ce que je veux est la suivante
Cut à chaque occurrence 40e delimter et d'écriture/de chasse au fichier et non tenir en mémoire et à nouveau faire la même chose pour les 40 suivant et ainsi sur.
Est-ce réalisable dans Bash?
Toute aide serait grandement appréciée.
Edit:
Ceci est la commande que nous avons utilisé dans PERL
perl -pe 's{Ç}{++$n % 40 ? $& : "\n"}ge' <file_name>
dire que les données sont les suivantes.
123ÇasfiÇsadfÇtest1Ç123ÇasfiÇsadfÇtest1ÇmockÇdataÇtest1Ç123ÇasfiÇsadfÇtest1ÇmockÇdata
Je veux couper à (dire 3 delimiter à la nouvelle ligne) et assignez à une variable ou quelque chose et tirer la chasse au fichier de sorte que la mémoire est effacée.
Sortie prévue
123ÇasfiÇsadf
test1Ç123Çasfi
sadfÇtest1Çmock
Note: Il est un énorme fichier de séquence. Nous sommes en mesure d'atteindre la sortie désirée avec la commande ci-dessus, mais pour un fichier plus volumineux, il lance une exception de mémoire et nous voulons donc vider les morceaux.
Pourquoi est-ce marqué Java? –
Je dirais même: [java] ou [bash ou [puthon]? x) – Nathan
Désolé. Corrigé maintenant. –