Qualquer personagem ou string pode ser substituído usando o comando 'sed'. Às vezes, precisamos substituir o personagem Newline (\ 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 facilmente dividir em \ n e substituir a nova linha por qualquer personagem. Outro delimitador pode ser usado no lugar de \ n, mas apenas quando o gnu sed é usado. Quando \ n está ausente na última linha do arquivo, o 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 do cliente tabular.
EU IA | Nome | Telefone | |
---|---|---|---|
c01 | MD. Rakib | [email protected] | 01856233238 |
C02 | Meher afroze | [email protected] | 01733536342 |
c03 | Fakrul Ahsan | [email protected] | 01934737248 |
C04 | Helal Uddin | [email protected] | 01534895898 |
c05 | Nusrat Jahan | [email protected] | 01866345254 |
Exemplo 1: Substitua \ n por uma vírgula usando -z
A opção -z é usada para converter \ n no caractere nulo (\ 0). O conteúdo do arquivo é tratado como uma única linha se não contiver caracteres nulos. 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 procurar globalmente por \ n. Com o segundo padrão de pesquisa e substituição, o último vírgula será substituído por \ n.
$ CAT CLIENTES.TXT
$ sed -z 's/\ n/,/g; s/, $/\ n/' clientes.TXT
A saída a seguir 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, a é usado para anexar tarefas, b é usado para ramificar o conteúdo, N é usado para ir para a próxima linha e $! é usado para impedir que a tarefa de substituição seja aplicada na última linha. O comando substituirá cada \ n com uma vírgula, exceto a última linha.
$ CAT CLIENTES.TXT
$ sed ': a; n; $!Ba; s/\ n/,/g 'clientes.TXT
A saída a seguir 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 pequeno arquivo, o seguinte comando 'sed' pode ser usado. Aqui, H é usado para anexar a última linha ao texto de retenção, 1H é usado para copiar todas as linhas do arquivo para o texto de retenção da primeira linha, $!d é usado para excluir 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 de retenção com uma vírgula.
$ CAT CLIENTES.TXT
$ sed 'h; 1h; $!d; x; y/\ n/,/'clientes.TXT
A saída a seguir 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 vírgula com -n opção, que impede a impressão automática. Como no exemplo anterior, H é usado aqui para anexar a última linha ao texto de retenção, 1h é usado para copiar todas as linhas do arquivo para o texto de retenção, $ refere -se à última linha do arquivo, g é usado para copiar do texto de retenção e p é usado para imprimir.
$ CAT CLIENTES.TXT
$ sed -n "h; 1h; \ $ g; s/\ n/,/g; p" clientes.TXT
A saída a seguir 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 pesquisa e substituição de expressão substituirão cada \ n com uma vírgula, e a segunda pesquisa e a expressão substituirá uma vírgula no início de uma linha com um espaço.
$ CAT CLIENTES.TXT
$ sed -n 'h; $ x; s/\ n/,/g; s/^, //; p;' clientes '.TXT
A saída a seguir será produzida após a execução dos comandos acima.
Exemplo 6: substitua \ n por uma vírgula usando n e 'gato'
O comando 'Cat' é usado aqui para enviar o conteúdo do arquivo para o comando 'sed' e N é usado para mudar para a próxima linha.
$ CAT CLIENTES.TXT
$ CAT CLIENTES.txt | sed 'n; s/\ n/,/'
A saída a seguir 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. Esse tipo de substituição também pode ser feito usando outros comandos Linux. Muitas opções de comando, como H, N, H e X, podem ser usadas com o comando 'sed' para concluir esta tarefa. Este tutorial passa por várias maneiras de usar o comando 'sed' para substituir \ n por uma vírgula.