GNU/Linux >> Linux Esercitazione >  >> Linux

10 pratici esempi di comandi di taglio Linux per selezionare le colonne di file

Il taglio del comando Linux viene utilizzato per l'elaborazione del testo. Puoi utilizzare questo comando per estrarre parte di testo da un file selezionando le colonne.

Questo tutorial fornisce alcuni esempi pratici di comando cut che puoi utilizzare nelle tue attività quotidiane da riga di comando.

Per la maggior parte dell'esempio, utilizzeremo il seguente file di test.

$ cat test.txt
cat command for file oriented operations.
cp command for copy files or directories.
ls command to list out files and directories with its attributes.

1. Seleziona Colonna di caratteri

Per estrarre solo una colonna desiderata da un file, utilizzare l'opzione -c. L'esempio seguente mostra il 2° carattere da ciascuna riga di un file test.txt

$ cut -c2 test.txt
a
p
s

Come visto sopra, i caratteri a, p, s sono il secondo carattere di ogni riga del file test.txt.

2. Seleziona Colonna di caratteri usando Intervallo

L'intervallo di caratteri può anche essere estratto da un file specificando la posizione iniziale e finale delimitata da -. L'esempio seguente estrae i primi 3 caratteri di ogni riga da un file chiamato test.txt

$ cut -c1-3 test.txt
cat
cp
ls

3. Seleziona Colonna di caratteri utilizzando la posizione iniziale o finale

Sia la posizione iniziale che la posizione finale possono essere passate al comando di taglio con l'opzione -c.

Quanto segue specifica solo la posizione iniziale prima di '-'. Questo esempio estrae dal 3° carattere alla fine di ogni riga dal file test.txt.

$ cut -c3- test.txt
t command for file oriented operations.
 command for copy files or directories.
 command to list out files and directories with its attributes.

Quanto segue specifica solo la posizione finale dopo il '-'. Questo esempio estrae 8 caratteri dall'inizio di ogni riga dal file test.txt.

$ cut -c-8 test.txt
cat comm
cp comma
ls comma

L'intera riga verrebbe stampata se non specifichi un numero prima o dopo il "-" come mostrato di seguito.

$ cut -c- test.txt
cat command for file oriented operations.
cp command for copy files or directories.
ls command to list out files and directories with its attributes.

4. Seleziona un campo specifico da un file

Invece di selezionare il numero x di caratteri, se desideri estrarre un intero campo, puoi combinare l'opzione -fe -d. L'opzione -f specifica quale campo si desidera estrarre e l'opzione -d specifica qual è il delimitatore di campo utilizzato nel file di input.

L'esempio seguente mostra solo il primo campo di ogni riga dal file /etc/passwd utilizzando il delimitatore di campo :(due punti). In questo caso, il primo campo è il nome utente. Il file

$ cut -d':' -f1 /etc/passwd
root
daemon
bin
sys
sync
games
bala

5. Seleziona più campi da un file

Puoi anche estrarre più di un campo da un file o stdout. L'esempio seguente mostra il nome utente e la directory home degli utenti che hanno la shell di accesso come "/bin/bash".

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1,6
root:/root
bala:/home/bala

Per visualizzare l'intervallo di campi, specificare il campo iniziale e il campo finale come mostrato di seguito. In questo esempio, selezioniamo i campi da 1 a 4, 6 e 7

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7
root:x:0:0:/root:/bin/bash
bala:x:1000:1000:/home/bala:/bin/bash

6. Seleziona solo campi quando una riga contiene il delimitatore

Nel nostro esempio /etc/passwd, se passi un delimitatore diverso da :(due punti), cut visualizzerà semplicemente l'intera riga.

Nell'esempio seguente, abbiamo specificato il delimitatore come | (pipe) e il comando cut mostra semplicemente l'intera riga, anche quando non trova alcuna riga che abbia | (tubo) come delimitatore.

$ grep "/bin/bash" /etc/passwd | cut -d'|'  -f1
root:x:0:0:root:/root:/bin/bash
bala:x:1000:1000:bala,,,:/home/bala:/bin/bash

Tuttavia, è possibile filtrare e visualizzare solo le righe che contengono il delimitatore specificato utilizzando l'opzione -s.

L'esempio seguente non mostra alcun output, poiché il comando cut non ha trovato righe con | (pipe) come delimitatore nel file /etc/passwd.

$ grep "/bin/bash" /etc/passwd | cut -d'|' -s -f1

7. Seleziona Tutti i campi tranne i campi specificati

Per completare l'elenco dei campi di selezione, utilizzare l'opzione –complement.

L'esempio seguente mostra tutti i campi del file /etc/passwd tranne il campo 7

$ grep "/bin/bash" /etc/passwd | cut -d':' --complement -s -f7
root:x:0:0:root:/root
bala:x:1000:1000:bala,,,:/home/bala

8. Modifica il delimitatore di output per la visualizzazione

Per impostazione predefinita, il delimitatore di output è lo stesso del delimitatore di input che specifichiamo nell'opzione cut -d.

Per modificare il delimitatore di output, utilizzare l'opzione –output-delimiter come mostrato di seguito. In questo esempio, il delimitatore di input è :(due punti), ma il delimitatore di output è # (cancelletto).

$ grep "/bin/bash" /etc/passwd | cut -d':'  -s -f1,6,7 --output-delimiter='#'
root#/root#/bin/bash
bala#/home/bala#/bin/bash

9. Cambia il delimitatore di output in Nuova riga

In questo esempio, ogni campo dell'output del comando di taglio viene visualizzato in una riga separata. Abbiamo ancora usato –output-delimiter, ma il valore è $'\n' che indica che dovremmo aggiungere una nuova riga come delimitatore di output.

$ grep bala /etc/passwd | cut -d':' -f1,6,7 --output-delimiter=$'\n'
bala
/home/bala
/bin/bash

10. Combina il taglio con un altro output di comando Unix

Il comando power of cut può essere realizzato quando lo combini con lo stdout di qualche altro comando Unix.

Dopo aver imparato l'uso di base del comando di taglio che abbiamo spiegato sopra, puoi usare saggiamente il comando di taglio per risolvere molti dei tuoi requisiti di manipolazione del testo.

L'esempio seguente indica come estrarre solo informazioni utili dall'output del comando ps. Abbiamo anche mostrato come abbiamo filtrato l'output del comando ps usando grep e sed prima che l'output finale fosse dato al comando cut. Qui, abbiamo usato l'opzione di taglio -d e -f che abbiamo spiegato negli esempi precedenti.

$ ps axu | grep python | sed 's/\s\+/ /g' | cut -d' ' -f2,11-
2231 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video
2311 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote
2414 /usr/bin/python /usr/lib/ubuntuone-client/ubuntuone-syncdaemon
2463 /usr/bin/python /usr/lib/system-service/system-service-d
3274 grep --color=auto python

Linux
  1. Comando mv in Linux:7 esempi essenziali

  2. Comando cp in Linux:7 esempi pratici

  3. Comando di arresto di Linux:5 esempi pratici

  4. 5 esempi pratici di comando principale in Linux

  5. file Esempi di comandi in Linux

16 Esempi pratici di comando traceroute in Linux

20 esempi pratici di comando Chown in Linux

15 Esempi pratici di Localizza comando in Linux

12 Esempi pratici di In Command in Linux

15 esempi pratici di comando Rsync in Linux

5 esempi pratici di Tail Command in Linux