awk '{printf "%d\t%s\n", NR, $0}' < filename
Como posso adicionar um número de linha e uma guia ao início de cada linha de um arquivo de texto?
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$.
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.
cat -n <yourfile> | perl -pe "s/^\s*(\d+)\s+/\t/"
cat -n adiciona os linenumbers como "123 linecontents" e o regexp o modifica para "linenumberTABlinecontents"
perl -pe "s/^/$.\t$_/" file.txt
ou
perl -ne "print qq($.\t$_)" file.txt
Que tal
cat -n somefile.txt
?
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 de cada 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!
Ok, já que estamos coletando maneiras de fazer isso,
grep -n . file.txt | sed 's/\(^[0-9]*\):/ /g'
# this is a tab with Ctrl-V + Tab =====> ----
sed file.txt -e 's/^/\t/' | cat -n | sed -e 's/^\t//'
ou para alguns não-GNU sed
s:
cat file.txt | sed -e 's/^/\t/' | cat -n | sed -e 's/^\t//'