Ecco un esempio dell'uso cutdi 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 cutdi 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
-dargomento).
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
cutper Windows non seguano lo standard completo.
cutper 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 trper 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