Se lavori principalmente sulla riga di comando di Linux, la modifica del testo è probabilmente una delle attività più frequenti in cui potresti trovarti coinvolto. Che si tratti di modificare script, file di codice sorgente, file di configurazione o un normale file di testo, ci sono diversi testi strumenti di modifica che ti aiutano nel tuo lavoro.
Uno di questi strumenti è colrm , di cui parleremo qui utilizzando alcuni esempi di facile comprensione. Ma prima di iniziare, vale la pena ricordare che tutti gli esempi qui presenti sono stati testati su una macchina Ubuntu 18.04 LTS.
Comando Linux colrm
Il comando colrm in Linux ti consente di rimuovere le colonne selezionate da un file. Di seguito è riportata la sua sintassi:
colrm [start [stop]]
Ed ecco come la pagina man di colrm descrive cosa fa lo strumento:
The colrm utility removes selected columns from the lines of a file. A
column is defined as a single character in a line. Input is read from
the standard input. Output is written to the standard output.
If only the start column is specified, columns numbered less than the
start column will be written. If both start and stop columns are speci?
fied, columns numbered less than the start column or greater than the
stop column will be written. Column numbering starts with one, not zero.
Di seguito sono riportati alcuni esempi in stile domande e risposte che dovrebbero darti una buona idea su come funziona il comando colrm.
Q1. Come usare il comando colrm?
Come già accennato, il comando colrm consente di rimuovere le colonne. Quindi devi solo specificare un valore numerico e la colonna corrispondente a quel valore, nonché tutte le colonne successive verranno eliminate nell'output.
Ad esempio, ecco un file di testo 'file1.txt' che contiene il seguente testo:
abcdefgh
Per colrm, ogni alfabeto rappresenta una colonna. Quindi ora, supponiamo che il requisito sia eliminare la colonna 6 e tutte le colonne successive, quindi questo può essere fatto usando:
colrm 6 < file1.txt
Di seguito è riportato l'output che il comando precedente produrrà:
Quindi puoi vedere che le colonne 6, ,7 e 8 sono state eliminate.
Q2. Come rimuovere solo una singola colonna?
In tal caso, devi specificare sia le colonne di inizio che di fine. Supponiamo che il requisito sia eliminare solo la colonna numero 6, quindi per questo è necessario eseguire il comando colrm nel modo seguente:
colrm 6 6 < file1.txt
Ecco l'output prodotto da questo comando sul mio sistema:
Quindi puoi vedere che solo la sesta colonna è stata eliminata. Inutile dire che in questo modo puoi eliminare un intervallo di colonne. Ad esempio:
colrm 2 6
Questo comando eliminerà le colonne comprese tra 2 e 6. Vale la pena tenere presente che la numerazione delle colonne inizia da 1, non da zero.
La pagina man dello strumento lo spiega abbastanza chiaramente. Ecco l'estratto pertinente:
Inoltre, tieni presente che colrm restituisce 0 in caso di successo e>0 se si verifica un errore.
È molto facile. Non devi fare nulla in più:fornisci semplicemente il numero di colonna (o intervallo) in input.
Ecco un esempio: Quindi il comando attende che tu fornisca l'input in fase di esecuzione, quindi produce otutput dopo aver premuto il tasto Invio.
Come probabilmente sarai d'accordo, il comando colrm è una piccola utility utile quando si tratta di rimuovere colonne da un file di testo. Qui, in questo tutorial, abbiamo discusso di quasi tutte le sue caratteristiche. Una volta che hai finito di esercitarti, puoi saperne di più sul comando andando alla sua pagina man.
T3. In che modo colrm gestisce i backspace e le schede?
Tab characters increment the column count to the next multiple of eight.
Backspace characters decrement the column count by one.Q4. Come fare in modo che colrm accetti l'input da stdin?
Conclusione