Strona 1 z 1

[+] Perl lub inne narzędzie no zmiany wzorca na wynik polecenia

: 21 kwietnia 2011, 15:37
autor: DaVidoSS
Próbuję użyć jakiegoś programu który odnalazłby i zamieniłby w pliku tekstowym każdą
frazę "user" na wynik polecenia:

Kod: Zaznacz cały

 whoami
Próbowałem użyć perl-a na takim przykładzie:

Kod: Zaznacz cały

perl -pi -e 's/user/$(whoami)/g' JDownloader.desktop.

Program odnajduje ciąg znaków "user" ale z podmianką na wynik polecenia whoami nie daje rady, albo też ja źle to wykonuję.

Kod: Zaznacz cały

davidoss-squeeze@debian-squeeze:~/Pulpit$ cat JDownloader.desktop 
[Desktop Entry]
Comment[pl]=
Comment=
Exec=/home/[B]1000 24 25 27 29 30 44 46 1000whoami)[/B]/jd.sh
GenericName[pl]=
GenericName=
Icon=/home/[B]1000 24 25 27 29 30 44 46 1000whoami)[/B]/.jd/jd/img/logo/jd_logo_54_54.png
MimeType=
Name[pl]=JDownloader
Name=JDownloader
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

Proszę o pomoc! Jak by to prawidłowo ująć?.

: 21 kwietnia 2011, 16:04
autor: mariaczi
Tak:

Kod: Zaznacz cały

cusr=`whoami`; sed "s/user/$cusr/g" tmp2
Resztę przystosuj na swoje potrzeby ;)

: 21 kwietnia 2011, 16:41
autor: DaVidoSS
Dziękuję za odpowiedź. Działa wyśmienicie:

Kod: Zaznacz cały

davidoss-squeeze@debian-squeeze:~/Pulpit$ cat JDownloader.desktop 
[Desktop Entry]
Comment[pl]=
Comment=
Exec=/home/[B]user[/B]/jd.sh
GenericName[pl]=
GenericName=
Icon=/home/[B]user[/B]/.jd/jd/img/logo/jd_logo_54_54.png
MimeType=
Name[pl]=JDownloader
Name=JDownloader
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

Kod: Zaznacz cały

davidoss-squeeze@debian-squeeze:~/Pulpit$ cusr=`whoami`; sed "s/user/$cusr/g" < JDownloader.desktop > JDownloader.desktop.temp ; rm JDownloader.desktop ; mv  JDownloader.desktop.temp JDownloader.desktop

Kod: Zaznacz cały

davidoss-squeeze@debian-squeeze:~/Pulpit$ cat JDownloader.desktop
[Desktop Entry]
Comment[pl]=
Comment=
Exec=/home/davidoss-squeeze/jd.sh
GenericName[pl]=
GenericName=
Icon=/home/davidoss-squeeze/.jd/jd/img/logo/jd_logo_54_54.png
MimeType=
Name[pl]=JDownloader
Name=JDownloader
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=