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 Découper un fichier en ligne de commande - Conseils pratiques - Linux Découper une image en ligne - Conseils pratiques - Windows 7 Découper une musique en ligne - Conseils pratiques - Audio Decouper un video en ligne - Conseils pratiques - Windows Movie Maker

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 Découper un fichier en ligne de commande - Conseils pratiques - Linux Découper une image en ligne - Conseils pratiques - Windows 7 Découper une musique en ligne - Conseils pratiques - Audio Decouper un video en ligne - Conseils pratiques - Windows Movie Maker

Web: www.shapebootstrap.net

3 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 ?

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 57816 internautes nous ont dit merci 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