O corte não suporta espaços em branco para os delimers do espaço em branco?

5

O delimitador padrão no awk é o espaço em branco para uma mudança sem espaço em branco.

O padrão para o corte é o caractere de tabulação.

Posso dizer ao recorte para usar espaço não-branco em delimitadores de espaço em branco?

Por exemplo,

a:

foo  bar

cut -d' ' -f2 a

imprime apenas um espaço, mas deve imprimir bar .

awk '{ print $2; } a

barra de impressão.

Claro, muitas vezes você pode simplesmente usar o awk como um substituto de corte se precisar dessa semântica. Mas o corte tem a vantagem de ser muito eficiente em termos de memória. Especialmente, ele não carrega colunas não utilizadas na memória (ao contrário de alguns awks).

    
por maxschlepzig 29.08.2010 / 22:37

2 respostas

3

Não vejo como fazer com que cut(1) faça o que você deseja. Acredito que você esteja correto em acreditar que, se você tiver mistas de delimitadores de espaço em branco, a melhor alternativa é awk(1) .

    
por 29.08.2010 / 23:37
4

Você pode pré-processar seus dados com algo como tr -s ' ' '\t' . Mas você não obteria nenhum benefício a menos que suas linhas fossem muito longas. (Quanto tempo? Medir e descobrir.)

    
por 30.08.2010 / 01:12

Tags