GNU/Linux >> Znalost Linux >  >> Linux

Najděte jakýkoli řádek v VI, který má něco jiného než ATCG

Zaprvé, soubor rozhodně nechcete otevírat v editoru (je příliš velký na to, aby ho takto upravoval).

Místo toho, pokud se chcete pouze identifikovat zda soubor obsahuje něco jiného než A , T , C a G , můžete to udělat pomocí

grep '[^ATCG]' filename

To by vrátilo všechny řádky, které obsahují cokoli jiného než tyto čtyři znaky.

Pokud chcete smazat tyto znaky ze souboru, můžete tak učinit pomocí

tr -c -d 'ATCG\n' <filename >newfilename

(jestli je to správný způsob, jak soubor "opravit" nebo ne, nevím)

Tím by se odstranily všechny znaky v souboru, které nejsou jedním ze čtyř, a také by se zachovaly nové řádky (\n ). Upravený soubor bude zapsán do newfilename .

Pokud se jedná o systematickou chybu, která do souboru něco přidala, pak by to mohlo být opraveno pomocí sed nebo awk , ale zatím nevíme, jak vaše data vypadají.

Pokud máte soubor otevřený v vi nebo vim a poté příkaz

/[^ATCG]

najde v editačním bufferu další znak, který není A , T , C nebo G .

A :%s/[^ATCG]//g odstraní je všechny.


Linux
  1. Program, který by mohl ukládat do vyrovnávací paměti Stdin nebo soubor?

  2. Je možné zjistit, který Vim/tmux má soubor otevřený?

  3. Nástroj příkazového řádku k načtení hesla, které nemá zpět echo?

  1. Najít věk nejstaršího souboru na jednom řádku nebo vrátit nulu?

  2. Jak můžeme uložit jiné heslo než prostý text?

  3. Jak mohu najít soubor/adresář, který by mohl být kdekoli na příkazovém řádku linuxu?

  1. Jak najít balíček, který poskytuje konkrétní soubor v Linuxu

  2. Hledat textové soubory, kde existují dvě různá slova (jakékoli pořadí, libovolný řádek)?

  3. Nemůžete najít soubor k opravě na vstupním řádku 3?