GNU/Linux >> Linux Esercitazione >  >> Linux

come inserire una nuova riga se una riga ha più di 60 caratteri

Prova:

$ awk '{print $1; for (i=1;i<=length($2);i=i+60) print substr($2,i,60)}' file
>Directory1/file3
CTTSCCCTTTTTSEEEEECGGGSCEEEEECCCSSBCCCSCCCCCTTTCCCCCCCCSCBCC
CCCCCCSCTTSCCCTTTTTSEEEEECGGGSCEEEEECCCSSBCCCSCCCCCTTTCCCCCC
CCSCBCCCCCCCCSCTTSCCCTTTTTSEEEEECGGGSCEEEEECCCSSBCCCSCCCCCTT
TCCCCCCCCSCBCCCCCCCCS
>Directory1/file4
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAA

Come funziona:

  1. print $1

    Questo stampa il primo campo sulla riga.

  2. for (i=1;i<=length($2);i=i+60) print substr($2,i,60)

    Per il secondo campo sulla riga, stampiamo 60 caratteri alla volta finché non raggiungiamo la fine del campo.


Puoi usare GNU coreutils fold :

fold -w60 file

Linux
  1. Come visualizzare i caratteri di controllo (^c, ^d, ^[, …) in modo diverso nella shell?

  2. Come gestire più di 10 parametri in shell

  3. Come inserire una nuova riga nello script della shell di Linux?

  4. xargs sostituzione di più di un argomento

  5. Come associare il server MySQL a più di un indirizzo IP?

Come posso cancellare i caratteri stampati in un'applicazione console (Linux)?

Concatenazione di file e inserimento di una nuova riga tra i file

Come inserire una nuova riga nell'e-mail usando il comando linux mail?

stampare il contenuto di più di un file in un archivio zip

Bash - Come stampare stringhe multilinea (con '\n') usando printf

Come grep le righe che hanno più di un numero specifico di caratteri speciali