Како да додам број у свакој линији текста?

6 odgovora [Poslednji unos]
nucleuswizard
Slika korisnika nucleuswizard
Offline
User
Član od: 29/05/2006

Да ли неко зна како да додам у свакој линији текста растући број,на пример имам у једном текст фајлу имена videos0001.mp4 који иду све до videos0045.mp4,сада ми је потребно да иду од 0046 до  0090 значи да се само промене две цифре испред "." а остало да остане исто.Да ли може неком перл скриптом или неком  cat командом?

0
dukenukem_4d
Slika korisnika dukenukem_4d
Offline
User
Član od: 02/07/2007

mislim da može nešto pomoću SED komande Afro (bar mislim ??? )

http://www.grymoire.com/Unix/Sed.html#uh-3
http://www.oracle.com/technology/pub/articles/dulaney_sed.html

EDIT
tetris u sed ,tetris u sed... Laughing out loud :D Laughing out loud :D
http://www.catonmat.net/blog/sed-one-liners-explained-part-one/

sed -nf sedtris.sed

Afro

__________________

ADSL 1024 Slackware Srbija?Psy linux> Notorrni_modem ali se teže instalira od oootranslit ња ња

Andersen
Slika korisnika Andersen
Offline
User
Član od: 04/04/2007

Trebalo bi da moze u nekoliko linija da se uradi, u python-u na primer, procesljaj malo uputstva ako imas vremena.

DrLove73
Slika korisnika DrLove73
Offline
User
Član od: 29/05/2006

Mozes kao terminal komanu u jednom redu"

for (( i=46; i <= 90; i++)); do echo videos00$i.mp4 >> testfajl.txt; done

ili kao BASH skriptu:
increment.sh:
#!/bin/bash
for (( i=46; i <= 90; i++)); do
  echo videos00$i.mp4 >> testfajl.txt
done

Puppet_Master
Slika korisnika Puppet_Master
Offline
User
Član od: 29/05/2006

ili u python-u na sledeci nacin Smile

#!/usr/bin/python

for i in range (46,91):
    print "videos00" + str(i) +".mp4"

DrLove73
Slika korisnika DrLove73
Offline
User
Član od: 29/05/2006

BASH je bash! bash  Laughing out loud

Marel
Slika korisnika Marel
Offline
User
Član od: 29/05/2006

Да ли неко зна како да додам у свакој линији текста растући број,на пример имам у једном текст фајлу имена videos0001.mp4 који иду све до videos0045.mp4,сада ми је потребно да иду од 0046 до  0090 значи да се само промене две цифре испред "." а остало да остане исто.Да ли може неком перл скриптом или неком  cat командом?

Vidim da je stara tema, ali za druge koji imaju slican problem. Koliko sam shvatio, ovde je sustina u dodavanju offset-a na index broj.
for fn in videos*.mp4; do
fn2="${fn:0:6}"
broj="${fn:6:4}"
nbroj=$[$broj+45]
nfn="$fn2$nbroj.mp4"
echo "$nfn"
done