Avatar billede torbens_dk Nybegynder
13. juni 2003 - 23:10 Der er 28 kommentarer og
1 løsning

Python til bash

#!/usr/bin/python
import string
file  = open ('/home/sophos/nt/sav.cfg','r')
lines = file.readlines()
file.close()

(name,number) = string.splitfields(lines[1],'=')

print "roolout number "+str(string.atoi(number)+1)

file2 = open ('/home/sophos/nt/sav.cfg','w')
file2.write(lines[0])
file2.write(name+"="+str(string.atoi(number)+1)+"\015\012")
file2.close()
Avatar billede torbens_dk Nybegynder
13. juni 2003 - 23:13 #1
cat /home/sophos/nt/sav.cfg
[Rollout]
SerialNumber=372

mener at man kan bruge sed på en eller anden måde
Avatar billede lap Nybegynder
13. juni 2003 - 23:14 #2
kan vi få et eksempel på 2-3 linier fra sav.cfg
Avatar billede torbens_dk Nybegynder
13. juni 2003 - 23:18 #3
Avatar billede lap Nybegynder
13. juni 2003 - 23:28 #4
Et script der virker:

#!/bin/bash

FIL=nt.sab

cat $FIL | while read linie
do
  SER=`echo $linie | cut -d"=" -f1`
  if [ "$SER" = 'SerialNumber' ]
  then
    CUR=`echo $linie | cut -d"=" -f2`
    NXT=`expr $CUR + 1`
    echo "SerialNumber=$NXT" >> /tmp/$$
  else
    echo $linie >> /tmp/$$
  fi
done

cp /tmp/$$ $FIL
rm -rf /tmp/$$

exit 0
Avatar billede lap Nybegynder
13. juni 2003 - 23:31 #5
Husk lige min skrivefejl i fil-navnet :-)
Avatar billede torbens_dk Nybegynder
13. juni 2003 - 23:34 #6
cp /home/sophos/nt/sav.cfg /tmp/nt.sab ; ./update
expr: non-numeric argument

cat nt.sab
[Rollout]
SerialNumber=

virker ikke helt endnu
Avatar billede lap Nybegynder
13. juni 2003 - 23:37 #7
Noget med et blanktegn - specielt i linien hvor NXT sættes eller CUR sættes.

# ./xx
[root@test root]# cat nt.sab
[Rollout]
SerialNumber=378
[root@test root]# ./xx
[root@test root]# cat nt.sab
[Rollout]
SerialNumber=379
[root@test root]#
Avatar billede torbens_dk Nybegynder
13. juni 2003 - 23:43 #8
mail det til: torbens@mail.danbbs.dk
Avatar billede lap Nybegynder
13. juni 2003 - 23:46 #9
Ahh, hvis ikke SerialNumber er sat 1. gang, så kommer det aldrig i gang - altså fejler
Avatar billede lap Nybegynder
13. juni 2003 - 23:49 #10
jo, den gjorde den faktisk - det troede jeg faktisk ikke den kunne (visse platforme ville give ovenstående fejl).
Avatar billede lap Nybegynder
13. juni 2003 - 23:51 #11
Jeg har lige testet med "", " ", " 1", "1 " og "01" - alle kommer videre.
Avatar billede torbens_dk Nybegynder
14. juni 2003 - 00:04 #12
./din
./din:  : command not found
./din:  : command not found
./din:  : command not found
./din:  : command not found
./din:    : command not found
expr: syntax error
./din:    : command not found
./din:    : command not found
./din:  : command not found
./din:    : command not found
./din:  : command not found
./din:  : command not found
./din:  : command not found
./din:    : command not found
expr: syntax error
./din:    : command not found
./din:    : command not found
./din:  : command not found
./din:    : command not found
./din:  : command not found
./din:  : command not found
Avatar billede torbens_dk Nybegynder
14. juni 2003 - 00:06 #13
NXT=`expr $CUR + 1` virker ikke.
Avatar billede lap Nybegynder
14. juni 2003 - 00:06 #14
Det ligner noget cr cr-lf problem - prøv lige at uploade din update - så kikker jeg lige engang.
Avatar billede lap Nybegynder
14. juni 2003 - 00:07 #15
Prøv en echo $CUR lige inden expr-linien
Avatar billede torbens_dk Nybegynder
14. juni 2003 - 00:08 #16
nu
Avatar billede torbens_dk Nybegynder
14. juni 2003 - 00:09 #17
så komer numret
Avatar billede lap Nybegynder
14. juni 2003 - 00:13 #18
Jeg tror jeg ved det nu - der er jo en +"\015\012" i phyton scriptet - det gi'r sikkert balladen - men jeg kan ikke se det på skærmen - og når jeg cut-paste fra web kan det heller ikke ses.

Jeg prøver lige....
Avatar billede lap Nybegynder
14. juni 2003 - 00:14 #19
Det er problemet - vent...
Avatar billede torbens_dk Nybegynder
14. juni 2003 - 00:16 #20
har sendt en mail retur
Avatar billede lap Nybegynder
14. juni 2003 - 00:20 #21
#!/bin/bash

FIL=nt.sab

cat $FIL | while read linie
do
  SER=`echo $linie | cut -d"=" -f1`
  if [ "$SER" = 'SerialNumber' ]
  then
" -f1`R=`echo $linie | cut -d"=" -f2 | cut -d"^M" -f1`
    NXT=`expr $CUR + 1`
    echo -e "SerialNumber=$NXT\015" >> /tmp/$$
  else
    echo $linie >> /tmp/$$
  fi
done

cp /tmp/$$ $FIL
rm -rf /tmp/$$

exit 0
Avatar billede lap Nybegynder
14. juni 2003 - 00:20 #22
se ny-min.sh i ~lap
Avatar billede torbens_dk Nybegynder
14. juni 2003 - 00:21 #23
har du prøvet koden på maskinen?
Avatar billede lap Nybegynder
14. juni 2003 - 00:24 #24
Nu har jeg - og den virker nu - der er lavet de samme ændringer omkring output som du også lavede. - Ovenståene har problemer med ^M
Avatar billede lap Nybegynder
14. juni 2003 - 00:26 #25
cut/paste af ctrl-m er rigtigt skidt kan jeg godt se - jeg skulle også rette det på maskinen - hvilket ovenstående også bærer præg af.
Avatar billede torbens_dk Nybegynder
14. juni 2003 - 00:29 #26
mange tak, vil meget gerne placerer denne kode til download inklusiv noget mere. så hvis du lige laver et copyright notice og jeg får din tilladelse er jeg glad
Avatar billede lap Nybegynder
14. juni 2003 - 00:30 #27
Der er SLET ingen copyright på dette - og du er velkommen til at bruge dit eget navn - det har jeg slet ingen problemer med - du bruger koden som du har lyst :-) - og jeg er logget af igen.
Avatar billede torbens_dk Nybegynder
14. juni 2003 - 00:31 #28
kanon takker mange gange
Avatar billede lap Nybegynder
14. juni 2003 - 00:32 #29
velbekomme - og endnu engang tak for point :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester