Ecco un esempio dell'uso cut
di suddividere l'input in campi utilizzando un delimitatore di spazio e di ottenere il secondo campo:
cut -f2 -d' '
Come si può definire il delimitatore come una scheda, anziché uno spazio?
Ecco un esempio dell'uso cut
di suddividere l'input in campi utilizzando un delimitatore di spazio e di ottenere il secondo campo:
cut -f2 -d' '
Come si può definire il delimitatore come una scheda, anziché uno spazio?
Risposte:
Due strade:
Premi Ctrl+ Ve poi Tab.
cut -f2 -d' ' infile
o scrivilo così:
cut -f2 -d$'\t' infile
-d
argomento).
ksh93
, no bash
. Questo è supportato almeno da ksh93, zsh, bash, mksh e FreeBSD sh ( potrebbe passare alla prossima inversione principale delle specifiche standard POSIX persh
).
La scheda è l'impostazione predefinita.
Vedi la pagina man tagliata .
-d delim
Use delim as the field delimiter character instead of the tab
character.
Quindi dovresti semplicemente scrivere
cut -f 2
cut
per Windows non seguano lo standard completo.
cut
per Windows e non segue le specifiche POSIX , non c'è motivo di presumere che qualsiasi script POSIX funzionerà con quel sistema. Attenersi alle funzioni specificate da POSIX. Non cercare di consentire ipotetiche implementazioni future non conformi; non è questo che significa "portabilità".
Più genericamente, senza richiedere caratteri invisibili: utilizzare tr
per convertire i delimitatori in un formato che può essere specificato più facilmente cut
.
$ echo -e "a\tb\tc" |tr '\t' ' ' |cut -d' ' -f2
b
tr
è uno strumento di sostituzione e sostituzione dei caratteri semplice ma potente.
abc(space)def(tab)ghi
? La tua risposta produrrà def
, ma dovrebbe cedere ghi
. Allo stesso modo, se l'input è ABC(tab)DEF(space)GHI
, la tua risposta produrrà DEF
, ma dovrebbe cedere DEF(space)GHI
.
echo -e "abc\tdef ghi" |tr '\t' ',' |cut -d',' -f2