Découper une très longue ligne en plusieurs - Forum Shell

A voir également:Découper une très longue ligne en plusieursDécouper une vidéo en ligne - Conseils pratiques - Vidéo Decouper un video en ligne - Conseils pratiques - Windows Movie Maker Découper un fichier en ligne de commande - Conseils pratiques - Linux Longue ligne Microsoft Word 2007 ✓ - Forum - Word Eviter des longues lignes d'instructions IF...ELSEIF....END IF - Forum - VB / VBA

Bonjour,
j'ai un très très long fichier contenant une seule ligne de plus de 5 millions de valeurs
0.55971931 0.5113123 0.51621799 0.65333583 0.5352019 0.42886304 0.5883952 0.57659072 0.65463236 0.48981324 0.52246554 0.4432738 0.55416584 0.43427686 0.54144264 0.73262018 0.52734922 0.49281018 0.64068342 0.48989701 ...............................................
(1L, 5024860C)

je souhaite le découper une plusieurs lignes de 255 colonnes.

d'avance merci

Forum

A voir également:Découper une très longue ligne en plusieursDécouper une vidéo en ligne - Conseils pratiques - Vidéo Decouper un video en ligne - Conseils pratiques - Windows Movie Maker Découper un fichier en ligne de commande - Conseils pratiques - Linux Longue ligne Microsoft Word 2007 ✓ - Forum - Word Eviter des longues lignes d'instructions IF...ELSEIF....END IF - Forum - VB / VBA

Web: www.shapebootstrap.net

12 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Salut,
je souhaite le découper une plusieurs lignes de 255 colonnes.
J'avoue n'avoir pas tout compris là ;-\

Plusieurs lignes ?
Plusieurs colonnes ?
Ou les deux ?

Merci zipe31 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 28284 internautes ce mois-ci

Reply
réponses:
  • auteur

    Salut,
    départ : (ce que j'ai) une seule ligne (avec plusieurs valeurs comme ceci)
    0.55971931 0.5113123 0.51621799 0.65333583 0.5352019 ..etc. (1L x 5024860C)

    arrivée (ce que je souhaite avoir) ( n Lignes x 255 C colonnes ou valeurs)

    merci

  • auteur

    Salut,

    As-tu regardé la commande "fold" donnée plus bas par Char Snipeur ???
    Elle semble toute indiquée pour ce que tu veux faire.

    Sinon

    sed -r 's/.{250}/&\n/g' fichier
    devrait faire le boulot.

  • auteur

    le monsieur veut des lignes de 255 "mots" (colonnes, ou champs) en considérant l'espace comme séparateur.

  • auteur

    Hi,

    Qu'à cela ne tienne…

    sed -r 's/([^ ]* ){255}/&\n/g' fichier
    ;-)

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Il doit y avoir un truc simple, mais là, je l'ai pas... probablement avec awk.
Sinon, on peut le faire à la bourrin.
On commence par compter le nombre de caractères :
nb=$(wc -c fichier)
ensuite, une bonne boucle :
for (( i=0 ; i< nb/255 ; i+=1 ))
do
(( a=i*255+1 ))
(( b=a+254 ))
cut -c $a-$b fichier >> resu
done

Je n'ai pas testé, mais tu vois l'idée ?

Reply
réponses:
  • auteur

    for i in $(< fichier); do ((++n%255)) && fmt=' ' || fmt='\n'; rslt="$rslt$i$fmt"; done
    echo -e "$rslt"

  • auteur

    trouver purement par hasard : fold - wrap each input line to fit in specified width
    Voilà, me doutait bien qu'il existait une commande simple

  • auteur

    fold
    "découpe" en fonction du nombre de colonnes, mais une colonne telle que la conçoit le terminal, c'est-à-dire ± un caractère. :(

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

ça a marché avec :

sed -r 's/.{2805}/&\n/g' input.txt > output.txt

2805 le nombre d'espaces.

mon fichier input :
MotEspaceMotEspace ......Mot
taille du Mot : 10 Espaces

Merci à tous.

Reply
réponses:
  • auteur

    taille du mot : 10 caractères.

    tu pourrais donc, alors, utiliser

    fold
    avec 255*11-1, soit 255 fois (10 caractères + 1 espace) - 1 espace
    ...
    ?

  • auteur

    je viens de l'essayer ça marche également avec fold :

    fold -w 2805 input.txt > output.txt

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed