GNU/Linux >> Znalost Linux >  >> Linux

jak vložit nový řádek, pokud má řádek více než 60 znaků

Zkuste:

$ 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

Jak to funguje:

  1. print $1

    Tím se vytiskne první pole na řádku.

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

    Pro druhé pole na řádku tiskneme 60 znaků najednou, dokud nedosáhneme konce pole.


Můžete použít GNU coreutils fold :

fold -w60 file

Linux
  1. Jak vložit text na začátek každého řádku ve Vimu

  2. Jak zobrazit řídicí znaky (^c, ^d, ^[, …) odlišně v shellu?

  3. Zřetězení souborů a vložení nového řádku mezi soubory

  1. Jak vložit nový řádek do skriptu prostředí Linux?

  2. Bash - Jak tisknout víceřádkové řetězce (s '\n') pomocí printf

  3. Jak grepovat řádky, které mají více než určitý počet speciálních znaků

  1. Jak odstranit soubor, který má netisknutelné znaky?

  2. Jak vložit text před první řádek souboru?

  3. Může Sed nahradit nové řádkové znaky?