it-swarm.dev

Como posso inserir um número de linha e uma guia em cada linha de um arquivo de texto?

Como posso acrescentar um número de linha e uma guia ao início de cada linha de um arquivo de texto?

44
Richard Hoskins
awk '{printf "%d\t%s\n", NR, $0}' < filename
50
pgs

O comando nl deve fazer isso, mas também adiciona espaço antes do número da linha. Faz parte dos coreutils do Linux.

nl lines.txt
 1  $bkWTN
 2  $cV8$.
52
ACoolie
sed = test.txt | sed 'N;s/\n/\t/'

O comando "sed =" imprimirá o número da linha seguido por um retorno de carro e depois a próxima linha.

A expressão "N; s/\ n/\ t /" tomará cada linha, obterá a próxima linha (isto é, o número da linha e a linha) e substituirá o retorno de carro por uma tabulação.

10
Callum
cat -n <yourfile> | Perl -pe "s/^\s*(\d+)\s+/\1\t/"

cat -n adiciona linenumbers como "123 linecontents" e que regexp o modifica para "linenumberTABlinecontents"

4
raspi
Perl -pe "s/^/$.\t$_/" file.txt

ou

Perl -ne "print qq($.\t$_)" file.txt
3
itsadok

Ok, aqui está uma solução bash de uma linha:

$ IFS=$'\n';x=1;for l in $(<file.txt);do echo -e "$x\t$l";((x+=1));done
$ IFS=

A primeira configuração do IFS diz ao bash para ler uma linha completa por vez. A segunda linha redefine o IFS para o padrão.

Como um bônus adicional, ele é executado completamente no seu Shell e não executa um programa!

2
P. Heffner

E se

cat -n somefile.txt

?

2
innaM

Ok, já que estamos coletando maneiras de fazer isso,

 grep -n . file.txt | sed 's/\(^[0-9]*\):/\1    /g'
 # this is a tab with Ctrl-V + Tab  =====>  ---- 
1
nik
sed file.txt -e 's/^/\t/' | cat -n | sed -e 's/^\t//'

ou para alguns não-GNU seds:

cat file.txt | sed -e 's/^/\\t/' | cat -n | sed -e 's/^\\t//'
1
chaos