Bash / Awk: reformate colunas desiguais com vários deliminadores

ufa

Eu tenho um CSV onde preciso reformatar o conteúdo de uma única coluna. O problema é que cada célula tem comprimentos completamente diferentes para reformatar.

A coluna atual se parece com (são duas linhas de uma única coluna):

Foo*foo*foo*1970,1980+Bar*bar*bar*1970
Foobar*Foobar*foobarbar*1970,1975,1980

O resultado deve ser semelhante a (ainda duas linhas uma coluna)

Foo*foo*foo*1970+Foo*foo*foo*1980+Bar*bar*bar*1970
Foobar*Foobar*foobarbar*1970+Foobar*Foobar*foobarbar*1975+Foobar*Foobar*foobarbar*1980

isso é o que estou tentando fazer

#!/bin/bash

cat foocol | \
    awk -F'+' \
    '{for i in NF print $i}' \
        | awk -F'*' \
        '{$Foo=$1"*"$2"*"$3"*" print $4}' \
\
        | awk -v Foo=$Foo -F',' \
        '{for j in NF do \
            print Foo""$j"+" }' \
> newcol

A ideia é iterar sobre os múltiplos dados delimitados por '+', enquanto os três primeiros valores delimitados por '*' devem ser agrupados para cada ',' ano delimitado, com um '+' entre eles

Mas estou recebendo erros de sintaxe em todos os lugares.

Obrigado

karakfa
$ awk --re-interval -F, -v OFS=+ '{match($1,/([^*]*\*){3}/);
                 prefix=substr($0,RSTART,RLENGTH); 
                 for(i=2;i<=NF;i++) $i=prefix $i }1' file

Foo*foo*foo*1970+Foo*foo*foo*1980+Bar*bar*bar*1970  
Foobar*Foobar*foobarbar*1970+Foobar*Foobar*foobarbar*1975+Foobar*Foobar*foobarbar*1980

talvez adicionar validação com if(match(...

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

dividir um arquivo em vários arquivos de acordo com as colunas usando bash cut ou awk

Escreva colunas com comprimentos desiguais para CSV

Escreva colunas com comprimentos desiguais para CSV

Python - trabalhando com colunas desiguais em linhas

como mesclar dois dataframes desiguais com base em várias colunas?

awk para dividir o campo duas vezes usando dois deliminadores com condição

Mesclando / anexando frames de dados com colunas desiguais,

Grade CSS com colunas de altura e largura desiguais

Dataframe dinâmico do Pandas com colunas desiguais

Faça um dataframe do pandas com linhas e colunas desiguais

Preenchendo colunas Pandas com listas de comprimentos desiguais

Reestruturando dados confusos com colunas desiguais em R

Corresponda e some colunas de 2 dataframes com linhas desiguais

jQuery - Retorna a grade com linhas e colunas desiguais

R: mescla externamente dois dataframes com colunas desiguais

Awk: soma os valores das colunas em vários arquivos com layout de coluna idêntico

Divida colunas com vários delimitadores em várias colunas

Como fazer um loop em vários valores de um campo com awk em bash?

Exclua colunas com vários zeros

Contar colunas com vários valores

awk - formatação de colunas - problema com vírgula

Combine awk com sub para imprimir várias colunas

Como concatenar várias colunas com dois pontos usando awk?

Combine as linhas com base em padrões e reformate o arquivo Bash / Linux

4 colunas de bootstrap desiguais

Unindo colunas correspondentes em vários campos com chaves não iguais entre arquivos usando o Bash?

Reformate os dados com vários cabeçalhos para um formato longo, com uma linha de cabeçalho tornando-se os dados em uma nova coluna

Intersecção de duas matrizes numpy 2-D com linhas e colunas desiguais

Adicione (não mescle!) Dois frames de dados com linhas e colunas desiguais

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo