A maioria das ferramentas de linha de comando que estou vendo tem a capacidade de escolher um delimitador de campo. No entanto, gostaria de escolher um delimitador para iniciar e outro diferente para finalizar o segmento de texto que gostaria de remover de cada linha que estou processando.
1text [blah blah blah] text number punctuation text text
2text text text
3text text (text) [blah blah blah] number text
4text <url> <email> text [blah blah blah] text
Gostaria de remover todo o 'blá blá blá' dessas linhas.
Blah pode conter qualquer coisa, exceto novas linhas, EOFs e outras coisas novas, e '['. ie: eu não deveria ter '[[' (nem '[blah [') em nenhum dos dados
Eu só tenho uma instância (opcional) de [] por linha. Então, para a linha 2 não há nada para remover, e isso não deve causar parada, parada ou falha.
Tenho quase 100% de certeza de que, se tiver um começo '[' também tenho um ']'. Isso pode ser bom para verificar, no entanto.
Existem outras formas de pontuação, por isso não quero trabalhar com algo que apenas procura coisas não alfanuméricas para começar a remover (isto é: linha 4)
Pontos de bônus para poder descobrir se estou juntando dois espaços em branco (agora adjacentes) naquele ponto em particular - mas sem remover os dois espaços em branco em qualquer outro ponto.
Tenho certeza que terei que usar o awk ou o sed, mas se houvesse uma maneira de fazer isso por meio de ferramentas de linha de comando regulares, para torná-lo o mais portátil possível, seria ideal.
Além disso, explicar o que você está fazendo (se você estiver usando regex / sed) certamente ajudaria, como:
Uma sugestão aqui diz:
sed 's/^.*%\([^ ]*\) .*\$\([^$]*\)$/ /' infile
Eu tenho esse tipo de trabalho com este pouco de monkeying:
cat data | sed 's/^.*\[\([^ ]*\) .*\]\([^$]*\)$/ /'
No entanto, não elimina toda a faixa de 'blá blá blá' e sai com uma quebra de linha extra.
Usando o cut / awk / sed com dois delimitadores diferentes
Realmente não responde a pergunta em um sentido geral (ou, pelo menos eu não consegui descobrir algo depois de lê-la - talvez apenas uma falha na minha parte), mas parece ser (também) especificamente adaptado aos dados dessa pessoa.