Pergunta

Eu estou tentando dados da tubulação no "cut" para, digamos, cortar a primeira coluna de texto. Isso funciona

$ cat test.txt | cut -d\  -f2-

Leitura de stdin também funciona:

$ cut -d\  -f2- -
? doc/html/analysis.html
? doc/html/classxytree-members.html
<CTRL+D>

No entanto, assim como um tubo está envolvido, ele não aceita minha <CTRL+D> mais, e eu não posso sinalizar "fim de arquivo":

$ cut -d\  -f2- - | xargs echo

Update: Esta é, aparentemente, um bug em uma versão antiga do bash (3.00.15). Ele faz o trabalho em versões mais recentes (tentou 4.0.33 e 3.2.25). Seria bom ter alguma solução alternativa, porém, desde que eu não pode atualizar facilmente.


Fundo: Eu tenho um script / oneliner que me dá uma saída de condensado de cvs status (eu sei, CVS ...) na forma

? filename

por exemplo. para um arquivo que ainda não comprometidos. Eu gostaria de ser capaz de copiar + colar partes da saída desse comando e usar isso como uma entrada para outro comando, que adiciona esses arquivos para cvs. Diga:

$ cut -d\  -f2- | xargs cvs add
<paste lines>
<CTRL-D>        # <-- doesn't work

Idéias?

Foi útil?

Solução

você já tentou

$ cat | cut -d\  -f2- | xargs cvs add
<paste lines>
<CTRL-D>        # <-- doesn't work

Outras dicas

Seus exemplos funcionam bem para mim. O shell você está usando? Que serviços públicos?

Uma coisa que às vezes tropeça pessoas se é que Ctrl - D só funciona se for o primeiro caractere na linha. Se você copiar e colar, você pode, por vezes, acidentalmente ter espaços em branco como o primeiro caractere da linha, ou nenhuma nova linha no final do bloco colado, em caso Ctrl , que - D não vai funcionar. Basta clicar retorno e, em seguida, tente Ctrl -. D novamente e ver se isso resolve o seu problema

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top