`cut -d: -f5-` stampa le linee anche se non hanno i due punti


12

Supponendo un file chiamato "file" contenente le righe:

foo:bar:baz:qux:quux
one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog

Se utilizziamo il comando cut con queste opzioni otteniamo:

$ cut -d ":" -f 5- file
quux
five:six:seven
epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog

Nell'ultima riga il carattere dei due punti non è stato trovato, quindi normalmente non avrebbe dovuto prendere quella linea perché iniziamo con il 5 ° campo fino alla fine della riga.

Perchè è così ?

Risposte:


16

Per impostazione predefinita cutcon l' -fopzione stampa qualsiasi riga che non contiene un carattere delimitatore. Usa -sse non li vuoi:

$ cut -d ":" -f 5- -s file
quux
five:six:seven
epsilon:zeta:eta:theta:iota:kappa:lambda:mu
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.