Como posso usar ferramentas de processamento de texto para inserir uma nova linha após cada N linhas?
Exemplo para N = 2:
ENTRADA:
sadf
asdf
yxcv
cxv
eqrt
asdf
SAÍDA:
sadf
asdf
yxcv
cxv
eqrt
asdf
text-processing
LanceBaynes
fonte
fonte
[[ ]]
para teste:while read line; do echo "$line"; ((lines++ % 2)) && echo; done
.sed '0~2 a\ '
adiciona um espaço a cada nova linha inserida. Se você quiser adicionar uma nova linha após cada linha, qualquer um destes semelhante trabalho:sed '0~1 a\ '
,sed 'a\ '
, ou apenassed G
.Usando
paste
fonte
... é tudo o que você precisa ...
Por exemplo:
SAÍDA:
... (e um espaço em branco também segue os 6) ... ou ...
SAÍDA:
(e nenhum espaço em branco segue os 5)
Se um espaço em branco sempre deve ser omitido em uma caixa de última linha:
fonte
Outro sabor inábil:
fonte
sed (GNU)
Com (GNU)
sed
:Curto (feio para N = 100):
man sed explica ~ como:
sed (outro)
Com outros sed (conte novas linhas):
Ou, para ser mais portátil, escreva como (remova comentários para algumas versões do sed):
awk
Com
awk
, provavelmente:fonte