`cut -d: -f5-` imprime les lignes même si elles n'ont pas de deux-points

12

En supposant un fichier nommé "fichier" contenant les lignes:

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

Si nous utilisons la commande cut avec ces options, nous obtenons:

$ 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

Dans la dernière ligne, le caractère deux-points n'a pas été trouvé, donc normalement il n'aurait pas dû prendre cette ligne car nous commençons par le 5ème champ jusqu'à la fin de la ligne.

Pourquoi est-ce si ?

00-Yalo
la source

Réponses:

16

Par défaut, cutl' -foption imprime toute ligne ne contenant pas de caractère de délimitation. A utiliser -ssi vous n'en voulez pas:

$ cut -d ":" -f 5- -s file
quux
five:six:seven
epsilon:zeta:eta:theta:iota:kappa:lambda:mu
Florian Diesch
la source