|
skrypt do przerobienia listy pakietow |
| Autor |
Wiadomość |
siamer
Moderator

Distro: ZEN-mini
Kernel: nowy
Procesor: Intel Core 2 2,2GHz
Płyta główna: NVIDIA
Karta graficzna: nVidia G102M 512MB
Karta dźwiękowa: MCP79 hda
RAM: 4GB
Laptop
Pomógł: 36 razy Posty: 781
|
Wysłany: Wto 09 Lut, 2010 02:39 skrypt do przerobienia listy pakietow
|
|
|
Witam.
W skryptach jestem zielony wiec mam pewnien problem. Liste pakietow z pewnego system znalazlem (tak jak wczesniej ktos napisal) w /var/... skopiowalem sobie na pulpit. Teraz chcialbym zainstaloawac te pakiety na innym systemie ale wersje pakietow sie roznia... Jak moge uzyskac taka postac pakietow np.
Lista pakietow z /var/ wyglada nastepujaco
acl-0.1pclos2009
acpi-10pclos2009
a pakietow tych jest ponad 1000
Jak zmienic postac pakietow w pliku tekstowym (wszystkich naraz) aby zostala usunieta cala koncowka (znaczy -0.1pclos2009) i zeby otrzymaj nast. postac:
acl
acpi
Ma ktos jakis pomysl ? Pewnie jednym poleceniem mozna to zrobic ale ja nie wiem jak bylbym bardzo wdzieczny za pomoc...
Pozdrawiam...
siamer |
_________________ każdy człowiek umrze, ale nie każdy naprawde żyje... !!
 |
| Ostatnio zmieniony przez siamer Wto 09 Lut, 2010 02:40, w całości zmieniany 1 raz |
|
|
|
 |
KrzysieQ
Moderator Samozwańczy Administrator

Distro: PCLinuxOS 2010
Procesor: Intel Core i5
Płyta główna: Gigabyte GA-P55A-UD3
Karta graficzna: GeForce 8400 GT
Karta dźwiękowa: Intel HD Audio
RAM: 4GB DDR3
Komputer stacjonarny
Pomógł: 43 razy Posty: 844
|
Wysłany: Wto 09 Lut, 2010 09:59
|
|
|
Tak na szybko skrobniete, ale działa:
| Kod: | #!/bin/bash
for s1 in `cat $1`
do
cuts=`awk -v a="$s1" -v b="-" 'BEGIN{print index(a,b)}'`
cut_start=`awk -v a="$s1" -v c="$cuts" 'BEGIN{print substr(a, 1, c-1)}'`
echo $cut_start >> $1_filtered
done
|
Zasada działania dość prosta: czytamy słowo po słowie z pliku wejściowego, lokalizujemy znak "-" i wypisujemy od początku do tego znaku (bez niego)
a potem prawa:
a uruchamiasz tak:
| Kod: | | ./skrypt.sh plik_z_pakietami |
a w wyniku dostaniesz plik: plik_z_pakietami_filtered |
|
|
|
 |
siamer
Moderator

Distro: ZEN-mini
Kernel: nowy
Procesor: Intel Core 2 2,2GHz
Płyta główna: NVIDIA
Karta graficzna: nVidia G102M 512MB
Karta dźwiękowa: MCP79 hda
RAM: 4GB
Laptop
Pomógł: 36 razy Posty: 781
|
Wysłany: Wto 09 Lut, 2010 16:06
|
|
|
dzieki. prawie dobrze dziala... jest tylko jeden problem. pliki np.:
gnome-applets-2.28.0-4pclos2010.i586.rpm
gnome-audio-2.22.2-2pclos2010.noarch.rpm
gnome-control-center-2.28.1-3pclos2010.i586.rpm
gnome-desktop-2.28.2-2pclos2010.i586.rpm
gnome-desktop-common-2.28.2-2pclos2010.i586.rpm
gnome-doc-utils-0.18.1-1pclos2010.noarch.rpm
gnome-games-2.28.1-1pclos2010.i586.rpm
gnome-icon-theme-2.28.0-1pclos2010.noarch.rpm
gnome-keyring-2.28.2-2pclos2010.i586.rpm
gnome-libs-1.4.2-19pclos2007.i586.rpm
gnome-media-2.28.1-2pclos2010.i586.rpm
gnome-menus-2.28.0.1-1pclos2010.i586.rpm
gnome-mime-data-2.18.0-1pclos2007.i586.rpm
gnome-mount-0.8-2pclos2007.i586.rpm
gnome-panel-2.28.0-5pclos2010.i586.rpm
gnome-power-manager-2.28.0-3pclos2010.i586.rpm
gnome-ppp-0.3.23-2pclos2007.i586.rpm
gnome-print-0.37-10pclos2007.i586.rpm
gnome-python-2.28.0-4pclos2010.i586.rpm
gnome-python-applet-2.28.0-4pclos2010.i586.rpm
gnome-python-bonobo-2.28.0-4pclos2010.i586.rpm
gnome-python-canvas-2.28.0-4pclos2010.i586.rpm
przerobil mi na:
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
gnome
dasz rade cos z tym zrobic ?
pozdrawiam... |
_________________ każdy człowiek umrze, ale nie każdy naprawde żyje... !!
 |
|
|
|
 |
KrzysieQ
Moderator Samozwańczy Administrator

Distro: PCLinuxOS 2010
Procesor: Intel Core i5
Płyta główna: Gigabyte GA-P55A-UD3
Karta graficzna: GeForce 8400 GT
Karta dźwiękowa: Intel HD Audio
RAM: 4GB DDR3
Komputer stacjonarny
Pomógł: 43 razy Posty: 844
|
Wysłany: Wto 09 Lut, 2010 21:06
|
|
|
A mówiłem, że pisane na szybko
Spróbuj wersję 0.2:
| Kod: | #!/bin/bash
for s1 in `cat $1`
do
cut=`awk -v a="$s1" 'BEGIN {
e = match(a, /-[0-9]/)
print substr(a, 1, e-1)
}'`
echo $cut >> $1_filtered
done
|
|
|
|
|
 |
siamer
Moderator

Distro: ZEN-mini
Kernel: nowy
Procesor: Intel Core 2 2,2GHz
Płyta główna: NVIDIA
Karta graficzna: nVidia G102M 512MB
Karta dźwiękowa: MCP79 hda
RAM: 4GB
Laptop
Pomógł: 36 razy Posty: 781
|
Wysłany: Wto 09 Lut, 2010 21:46
|
|
|
ale za to tym mnie zagieles dziala super !
dzieki za pomoc
pozdrawiam...
siamer |
_________________ każdy człowiek umrze, ale nie każdy naprawde żyje... !!
 |
|
|
|
 |
KrzysieQ
Moderator Samozwańczy Administrator

Distro: PCLinuxOS 2010
Procesor: Intel Core i5
Płyta główna: Gigabyte GA-P55A-UD3
Karta graficzna: GeForce 8400 GT
Karta dźwiękowa: Intel HD Audio
RAM: 4GB DDR3
Komputer stacjonarny
Pomógł: 43 razy Posty: 844
|
Wysłany: Sro 10 Lut, 2010 12:10
|
|
|
Działa identycznie jak poprzednik tylko nie szuka pierwszego wystąpienia pauzy, a wyrażenia pokroju pauza i cyfra które na moje oko oddziela nazwę pakietu od numeru wersji.
Mile widziane poprawki i udoskonalenia innych
Dla potomnych, instalacja z takiego pliku:
| Kod: | | apt-get install `cat lista_filtered` |
|
|
|
|
 |
|
|