sed

Como substituir nova linha por vírgula usando o comando 'sed'

Como substituir nova linha por vírgula usando o comando 'sed'

Qualquer caractere ou string pode ser substituído usando o comando 'sed'. Às vezes, precisamos substituir o caractere de nova linha (\ n) em um arquivo por uma vírgula. Neste artigo, usamos o comando 'sed' para substituir \ n por uma vírgula.

Usando 'sed' para substituir \ n por uma vírgula

Muitos problemas podem ocorrer ao substituir \ n por uma vírgula. Por padrão, toda linha termina com \ n ao criar um arquivo. O comando 'sed' pode ser facilmente dividido em \ n e substituir a nova linha por qualquer caractere. Outro delimitador pode ser usado no lugar de \ n, mas apenas quando GNU sed é usado. Quando o \ n está faltando na última linha do arquivo, GNU sed pode evitar a impressão \ n. Além disso, \ n geralmente é adicionado a cada saída consecutiva de 'sed'.

Criar um arquivo

Neste artigo, mostraremos como usar o comando 'sed' para substituir \ n por uma vírgula. Para acompanhar este tutorial, crie um arquivo de texto chamado Clientes.TXT com as seguintes informações tabulares do cliente.

EU IA Nome E-mail Telefone
c01 Md. Rakib [email protegido] 01856233238
c02 Meher Afroze [email protegido] 01733536342
c03 Fakrul Ahsan [email protegido] 01934737248
c04 Helal Uddin [email protegido] 01534895898
c05 Nusrat Jahan [email protegido] 01866345254

Exemplo 1: Substitua \ n por uma vírgula usando -z

A opção -z é usada para converter \ n para o caractere nulo (\ 0). O conteúdo do arquivo é tratado como uma única linha se não contiver nenhum caractere nulo. O comando 'sed' converterá a nova linha no caractere nulo e substituirá cada \ n por uma vírgula usando o primeiro padrão de pesquisa e substituição. Aqui, 'g' é usado para pesquisar globalmente por \ n. Com o segundo padrão de pesquisa e substituição, a última vírgula será substituída por \ n.

Clientes $ cat.TXT
$ sed -z 's / \ n /, / g; s /, $ / \ n /' Clientes.TXT

A seguinte saída será produzida após a execução dos comandos.

Exemplo 2: Substitua \ n por uma vírgula usando a, b, $! e n

O comando 'sed' pode ser usado para substituir \ n por uma vírgula usando a, b, N e $!. Aqui, uma é usado para anexar tarefas, b é usado para ramificar o conteúdo, N é usado para ir para a próxima linha, e $! é usado para evitar que a tarefa de substituição seja aplicada à última linha. O comando irá substituir cada \ n com uma vírgula exceto a última linha.

Clientes $ cat.TXT
$ sed ': a; N; $!ba; s / \ n /, / g 'Clientes.TXT

A seguinte saída será produzida após a execução dos comandos.

Exemplo 3: Substitua \ n por uma vírgula usando H, h, d, x e y

Se você quiser substituir \ n) com uma vírgula em um arquivo pequeno, então o seguinte comando 'sed' pode ser usado. Aqui, H éusado para acrescentar a última linha ao texto retido, 1héutilizado para copiar todas as linhas do arquivo para o texto retido da primeira linha, $!d é usado para deletar todas as linhas exceto a última linha, x é usado para trocar o texto de retenção e o espaço do padrão, e y é usado para substituir cada \ n no texto segurando com uma vírgula.

Clientes $ cat.TXT
$ sed 'H; 1h; $!d; x; y / \ n /, / 'Clientes.TXT

A seguinte saída será produzida após a execução dos comandos.

Exemplo 4: Substitua \ n por uma vírgula usando -n, H, h, g e p

O comando 'sed' pode ser usado para substituir \ n com uma vírgula com -n opção, que impede a impressão automática. Como no exemplo anterior, H é usado aqui para acrescentar a última linha ao texto em espera, 1h é usado para copiar todas as linhas do arquivo para o texto em espera, $ refere-se à última linha do arquivo, g é usado para copiar do texto retido, e p é usado para imprimir.

Clientes $ cat.TXT
$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" Clientes.TXT

A seguinte saída será produzida após a execução dos comandos acima.

Exemplo 5: Substitua \ n por uma vírgula usando H, x, p

H, x e p foram explicados em exemplos anteriores. A primeira expressão de pesquisa e substituição irá substituir cada \ n com uma vírgula, e a segunda expressão de pesquisa e substituição irá substituir uma vírgula no início de uma linha por um espaço.

Clientes $ cat.TXT
$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' Clientes.TXT

A seguinte saída será produzida após a execução dos comandos acima.

Exemplo 6: Substitua \ n por uma vírgula usando N e 'cat'

O comando 'cat' é usado aqui para enviar o conteúdo do arquivo para o comando 'sed', e N é usado para mover para a próxima linha.

Clientes $ cat.TXT
Clientes $ cat.txt | sed 'N; s / \ n /, /'

A seguinte saída será produzida após a execução dos comandos acima.

Conclusão

Pode ser necessário substituir \ n por uma vírgula para transferir dados de um formato de arquivo para outro. Este tipo de substituição também pode ser feito usando outros comandos do Linux. Muitas opções de comando, como H, N, h e x, podem ser usadas com o comando 'sed' para completar esta tarefa. Este tutorial aborda várias maneiras de usar o comando 'sed' para substituir \ n por uma vírgula.

Tutorial OpenTTD
OpenTTD é um dos jogos de simulação de negócios mais populares que existem. Neste jogo, você precisa criar um maravilhoso negócio de transporte. No en...
SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...