GNU/Linux >> Linux Esercitazione >  >> Linux

Trova qualsiasi riga in VI che abbia qualcosa di diverso da ATCG

Prima di tutto, sicuramente non vuoi aprire il file in un editor (è troppo grande per modificarlo in questo modo).

Invece, se vuoi solo identificare se il file contiene qualcosa di diverso da A , T , C e G , puoi farlo con

grep '[^ATCG]' filename

Ciò restituirebbe tutte le righe che contengono qualcosa di diverso da quei quattro caratteri.

Se desideri eliminare questi caratteri dal file, puoi farlo con

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

(se questo è il modo corretto per "correggere" il file o meno, non lo so)

Ciò rimuoverà tutti i caratteri nel file che non sono uno dei quattro e manterrà anche le nuove righe (\n ). Il file modificato verrebbe scritto in newfilename .

Se si tratta di un errore sistematico che ha aggiunto qualcosa al file, allora potrebbe essere corretto da sed o awk , ma non sappiamo ancora come sono i tuoi dati.

Se hai il file aperto in vi o vim , quindi il comando

/[^ATCG]

troverà il carattere successivo nel buffer di modifica che non è un A , T , C o G .

E :%s/[^ATCG]//g li rimuoverà tutti.


Linux
  1. Cercare file di testo in cui esistono due parole diverse (qualsiasi ordine, qualsiasi riga)?

  2. Un programma in grado di eseguire il buffering di Stdin o file?

  3. Non riesci a trovare il file da patchare nella riga di input 3?

  4. Trova l'età del file più vecchio in una riga o restituisci zero?

  5. Come possiamo memorizzare password diverse dal testo normale?

Come trovare le righe più lunghe in un file in Linux

collegamento simbolico:trova tutti i file che si collegano a questo file

trova i file che hanno un numero nel nome del file maggiore di

trova ed elimina file o cartelle più vecchi di x giorni

Verifica che un cron job sia stato completato

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