Inserir caractere no início de linhas específicas [duplicado]

0

Digamos que eu tenha arquivo:

% This is first line
% This is second line

This is content

% This is the end

Como posso inserir um caractere % no começo de cada linha que já começa com % ?

Resultado:

%% This is first line
%% This is second line

This is content

%% This is the end
    
por Magdalena Chmura 21.05.2018 / 11:29

2 respostas

2

com sed

sed 's/^%/%%/' infile

substitua o início % por %% das linhas se começar com.
O ^ é uma âncora que aponta para o início da linha; há $ que aponta para o final da linha.
para alterar a gravação no arquivo local, use a opção -i de sed .

Existe uma outra maneira que substituirá mais rapidamente que a anterior (se o seu arquivo for grande o suficiente, você notará a diferença)

sed '/^%/ s/^/%/' infile
    
por 21.05.2018 / 11:40
0

Isso pode ser obtido com sed e awk (embora também existam outras formas)

  1. Usando sed :% sed -i 's/^%/%&/' <your_file>
  2. Usando awk :% awk '/^%/ { $0 = "%" $0 } 1' <your_file>
por 21.05.2018 / 11:53