Eu tenho um arquivo de texto que contém para diferentes variáveis os possíveis intervalos de valores
1. life: short,long,na.
2. weather_f: cloudy,rainy,sunny,foggy,cold,warm,mild,
humid,na.
3. sea_temp: warm,mild,cold,na.
Eu gostaria de obter um arquivo de saída que se parece com isso
short,long,na
cloudy,rainy,sunny,foggy,cold,warm,mild,humid,na
warm,mild,cold,na
Eu tentei usar sed
para isso, mas a nova linha weather_f
me dá um tempo difícil. como posso obter a saída desejada?
Quando uma linha termina com uma vírgula, acrescente a próxima linha ao buffer imediatamente. Isso é feito
sed
usando a expressãoO
N
comando anexa a próxima linha ao texto no buffer, com um caractere de nova linha como delimitador entre os dois.Para permitir mais de uma única linha contínua, volte ao início do ciclo para verificar se há uma vírgula no final do buffer.
Depois disso, não há mais linha que precisamos anexar ao buffer, para que possamos começar a cortar a linha e organizá-la da maneira que queremos. Isso inclui excluir tudo até o primeiro
:
caractere, excluir todos os caracteres semelhantes a espaços (incluindo as novas linhas inseridas porN
) e cortar o ponto no final.Todo o roteiro de edição seria
Isso pode ser executado com o script em um arquivo (aqui,
script
) comoou, se você quiser digitar o script na linha de comando,
Dados os dados em sua pergunta, isso resultaria
Algumas
sed
implementações podem precisarb again
ser sua própria expressão: