2016-03-28 15 views
0
cat new 

Jackson, Bob D. C0001 book pizza apple 4.00 123as 
Filer, Jack C0002 happy apple hat 4.00 124ab 
Metro, Jim K. C0003 kindle pizza grape 4.00 125ac 

Burada yaptığım şey, dosyanın her satır sayılıncaya kadar gidebileceği 100+ satır varsa, bir sayaç eklemektir. Bu numara da ekliyor, bu yüzden örneğin sayaçtan sonra dosya böyle görünecek!Bir sayaç eklemek için çıkış nasıl biçimlendirilir unix

cat new 

1 Jackson, Bob D. C0001 book pizza apple 4.00 123as 
2 Filer, Jack C0002 happy apple hat 4.00 124ab 
3 Metro, Jim K. C0003 kindle pizza grape 4.00 125ac 

cevap

0

aşağıdaki şekilde awk kullanabilirsiniz:

awk '{printf "%d %s\n", NR, $0}' < new 

çıkışı sadece

1 Jackson, Bob D. C0001 book pizza apple 4.00 123as 
2 Filer, Jack C0002 happy apple hat 4.00 124ab 
3 Metro, Jim K. C0003 kindle pizza grape 4.00 125ac 

gibi DÜZENLEME şu şekildedir:

awk '{printf "%03d %s\n", NR-1, $0}' < new 0'dan satır numarası başlangıç ​​yapacak :

000 Jackson, Bob D. C0001 book pizza apple 4.00 123as 
001 Filer, Jack C0002 happy apple hat 4.00 124ab 
002 Metro, Jim K. C0003 kindle pizza grape 4.00 125ac 
+0

Sadece NR <= 0 ve NR-0 olduğunda çalıştı! Ancak ben 000 ile başlamak istedim merak ediyorum, o zaman 001 olmak için bir sonraki sayı bu mümkün mü? – NewEffect

+0

@ NewEffect "NR <= 0 ve NR-0" olduğunda ne demek istiyorsunuz? – YCFlame

+0

awk '{if (NR <= 0) print $ 0; printf "% d% s \ n", NR-0, $ 0} 'Eğer ikide bıraktıysam sayıları görebilmem için tek yol, 3. kayıtta başlayacak, ki bu da ilk başlarda başlamayacaktır. Eminim neden kodumda ... – NewEffect