Criando um FIFO que retira todos os principais espaços em branco? [fechadas]

0

Existe um codeblock que copio de um manual pessoal .txt file. Eu colo no terminal e executo pressionando Enter (Return). Recentemente eu o recortei por razões estéticas, mas quando copio ele recuou as quebras de execução (um prompt secundário é aberto). Para lidar com esse fenômeno, pensei em usar um FIFO.

Eu tento fazer um FIFO para o qual eu passe o seguinte codeblock:

⇨⇨⇨⇨(
⇨⇨⇨⇨Indented commands...
⇨⇨⇨⇨)

O FIFO deve remover todos os principais espaços em branco (geralmente tabulações, mas talvez também espaços) deste codebloco original e retornar uma versão não-legendada dele:

(
commands...
)

Tanto quanto eu entendo, o código que devo colocar no arquivo FIFO é 's/^\s*//g' .

Minha pergunta:

Quando eu colo o bloco de código em um terminal Bash, como eu poderia fazê-lo afetado pelo arquivo FIFO que criei antes de executá-lo?

Atualização:

Esta é a sintaxe completa que testei. Ele não foi executado corretamente (sem erros, apenas um prompt secundário aberto), por isso considero um filtro FIFO:

⇨⇨⇨⇨(
⇨⇨⇨⇨command1...
⇨⇨⇨⇨cat <<-'PMA' > /opt/script.sh
⇨⇨⇨⇨⇨⇨⇨⇨#!/bin/bash
⇨⇨⇨⇨⇨⇨⇨⇨strings...
⇨⇨⇨⇨PMA
⇨⇨⇨⇨command2...
⇨⇨⇨⇨) | sed 's/^\s*//g'
    
por JohnDoea 02.05.2017 / 18:35

1 resposta

0

Eu não acredito que você possa (razoavelmente facilmente) simplesmente criar um FIFO (também conhecido como 'pipe nomeado') que altere os dados que passam por ele. Provavelmente seria um pouco mais simples filtrar os dados quando eles saírem da extremidade mais distante do pipe, como acontece com [...] | sed 's/^\s*//' (o sinal g é supérfluo como "o início da linha" só pode ocorrer uma vez por linha).

    
por 02.05.2017 / 19:05

Tags