Meu arquivo,
PSS-A (Primary A)
PSS-B (Primary B)
PSS-C (Primary C)
PSS-D (Primary D)
PSS-E (Primary E)
PSS-F (Primary F)
PSS-G (Primary G)
PSS-H (Primary H)
PSS-I (Primary I)
SPARE (SPARE)
Arquivo de saída,
1> PSS-A (Primary A)
2> PSS-B (Primary B)
3> PSS-C (Primary C)
4> PSS-D (Primary D)
5> PSS-E (Primary E)
6> PSS-F (Primary F)
7> PSS-G (Primary G)
8> PSS-H (Primary H)
9> PSS-I (Primary I)
10> SPARE (SPARE)
shell-script
shell
text-processing
awk
sed
pmaipmui
fonte
fonte
cat
comando está imprimindo os números das linhas ... mas não exatamente o que eu queria .... masawk '{print NR "> " $s}' inputfile > outputfile
me dá a saída desejada .... :-) @amit kumarcat -n
não é portátil. Somente a-u
opção é especificada no POSIXcat
.A ferramenta certa para este trabalho é
nl
:Convém ajustar a
w
opção id de acordo com o número total de linhas no arquivo (se desejar que os números sejam bem alinhados).Resultado:
fonte
nl
trata linhas que contêm uma sequência de 1, 2 ou 3\:
seqüências de caracteres especialmente. Use-d $'\n'
para evitar isso. Além disso, por padrão, ele não numera linhas vazias. Use-ba
para numerar todas as linhas.$'...'
sintaxe é específica do bash.seq
não fazia isso. Obrigado deus pornl
$'...'
vem de ksh93 e também é suportado porzsh
,mksh
, sh busybox, sh FreeBSD e esmagar pelo menos. Ainda não é padrão, mas está planejado para inclusão na próxima versão principal do POSIX.$'...'
portabilidade ( cotaçãoeu fiz pelo método abaixo
comando:
cat -n filename |sed -r "s/^\s+//g"| sed "s/^[0-9]*/&\> /g"
resultado
fonte