Newsgroup: it.comp.os.linux.iniziare
Titolo: comando di shell per eliminare caratteri in un file txt

Ciao a tutti!!!
Ho un listato di un programma all'interno del quale su ogni riga è 
riportato il numero di riga.
Per compilare il programma ho bisogno di eliminare questi caratteri ad 
inizio di ogni riga.
Sapete indicarmi un comando di shell che permetta questa cancellazione 
in maniera automatica?
Thanks
LuKe

 writes:

molto probabilmente si puo' fare con sed, ma se non spieghi come sono
fatte queste righe, ossia che separatore c'e' (spazio?tab?%/$&%$?)
tra il numero di riga e il contenuto del file, e' un po' difficile
dirti che istruzioni dare a sed. Probabilmente la soluzione e'
qualcosa del tipo:
sed 's/^<regexp per in numero di riga>\(.*\)/\1/'
ciao
ivano

Writing on [ it.comp.os.linux.iniziare ] in reply to LuKe:

 sed 's/^[0-9] //' file >newfile

 sed 's/^<regexp per in numero di riga>\(.*\)/\1/'
Grazie per la risposta.
Di seguito riporto alcune righe del listato:
  18|import java.awt.print.PrinterJob;
  19|import java.awt.print.Book;
  20|import java.awt.print.PageFormat;
  21|import java.util.Vector;
  22|import java.util.LinkedList;
  23|
Voglio eliminare i numeri e la pipe.
Thanks
LuKe

 writes:

effettivamente e' ancora piu' semplice come diceva Vaporub. quindi fai:
sed 's/^[0-9]*|//' <input-file>
oppure 
sed 's/^ *[0-9]*|//' <input-file>
se ci sono spazi all'inizio del file
saluti
ivano

 se ci sono spazi all'inizio del file
oppure, senza scomodare le espressioni regolari:
cat nomefile | cut -d "|" -f 2- > nomenuovofilesenzanumeri
...ma non ho possibilita' di provarlo adesso.
Ciao
Menez
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

   23|
  12345....
colrm 1 5 < inuput > output

 cat nomefile | cut -d "|" -f 2- > nomenuovofilesenzanumeri
oppure evitare di riempire la tabella dei processi:
cut -d "|" -f 2- < input > output



bisogna vedere come sono formate le righe con numeri di meno/piu' di due cifre...


ma e` cosi` difficile digitare:  man colrm?
COLRM(1)                  BSD General Commands Manual                 COLRM(1)
NAME
     colrm - remove columns from a file
SYNOPSIS
     colrm [startcol [endcol]]
DESCRIPTION
     Colrm removes selected columns from a file.  Input is taken from standard
     input.  Output is sent to standard output.
     If called with one parameter the columns of each line will be removed
     starting with the specified column.  If called with two parameters the
     columns from the first column to the last column will be removed.
     Column numbering starts with column 1.
SEE ALSO
     awk(1), column(1), expand(1), paste(1)
HISTORY
     The colrm command appeared in 3.0BSD.
3rd Berkeley Distribution       March 14, 1991       3rd Berkeley Distribution

 
no, ma non c'entra un bel niente, hai capito cosa intendevo dire io?
bash-2.05a$ cat prova.txt
  18|import java.awt.print.PrinterJob;
  19|import java.awt.print.Book;
  20|import java.awt.print.PageFormat;
  21|import java.util.Vector;
  22|import java.util.LinkedList;
  23|
  120|printf("");
bash-2.05a$ colrm 1 5 < prova.txt         
import java.awt.print.PrinterJob;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.util.Vector;
import java.util.LinkedList;
|printf("");

LuKe wrote:

Tanto per aggiungere un nuovo metodo
awk -F\| '{print $2}' file_input > file_output
Ovviamente, ho fatto l'ipotesi che ci sia al più un "|" su ogni riga.
Se la riga è della forma
566 | ciao a tutti | XXDRGrrg
viene stampato solo il campo $2 (ciao a tutti).
Lascio per esercizio come risolvere il "problema" :-)
ciao, Andrea
PS ero convinto di aver già risposto in lista, ma non vedo
il mio messaggio. Si vede che ho sbagliato ed ho risposto in
privato a qualcuno. Me ne scuso con lui :-(