Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: problem z cudzyslowami  (Przeczytany 4276 razy)

bartekn80

  • Gość
problem z cudzyslowami
« dnia: 2008-01-26, 15:35:21 »
Witam mam taki problem

mam takie cos :

perl -e '@i=split(/\\|/,"jeden|dwa|trzy"); print $i[1];'

ta linijka dziala prawidlowo wyskakuje czesc "dwa" jednak jak bedzie :

perl -e '@i=split(/\\|/,"je"d"en|d"w"a|t"r"zy"); print $i[1];'

to juz wystepuje blad

o to chodzi ze bash interpretuje cudzyslowie. wie ktos jak z tym sobie poradzic ?

norbert_ramzes

  • Gość
problem z cudzyslowami
« Odpowiedź #1 dnia: 2008-01-26, 15:39:16 »
Może tak: \\"

bartekn80

  • Gość
problem z cudzyslowami
« Odpowiedź #2 dnia: 2008-01-26, 20:54:25 »
wszystko bylo by dobrze gdyby mogl bym ruszycz tekst ktory ma byc pociety a ktory zawiera cudzyslowy i nie moge tam dac slesha.

chmooreck

  • Gość
problem z cudzyslowami
« Odpowiedź #3 dnia: 2008-01-26, 21:23:55 »
skąd bierzesz ten tekst ? bo skoro nie możesz go ruszysz, to pewnie nie wpisujesz go z palca ?

możesz opisać trochę więcej jakiego typu to jest zadanie, może jest również inne rozwiązanie ;-)

P.S. backslasha

bartekn80

  • Gość
problem z cudzyslowami
« Odpowiedź #4 dnia: 2008-01-27, 00:23:17 »
no wiec o to chodzi ze od jakiegos zasu eksperymentuje sobie z menarzerem okien fvwm. Jak sie go troche skonfiguruje jest naprawde fajny.  I zwiazku z tym spobowalem stworzyc wlasnej roboty edytor menu, ktory by modyfikowal plik konfiguracyjny fvwm2rc. A narazie mi z tego wyszlo takie cos :

skrypt editmenu

WindowTitle {Modyfikacja Menu}
WindowSize 500 300
WindowPosition 100 300

Init
Begin
Set $menus={perl $HOME/.fvwm/scripts/editmenu.pl 1}
Set $menus=(GetOutput $menus 1 -1)
ChangeTitle 1 $menus
Set $click=0
End

Widget 1

Property
Type List
Position 10 20
Flags NoReliefString
Size 190 150
Title {                }

Main
Case message of
SingleClic:
Begin
   Set $item=(GetValue 1)
   Set $click=(Add $click 1)
   If $olditem==$item Then
Begin
   If $click==1 Then
    Set $select=(GetValue 1)
Set $select=(Add $select -1)
Set $sel={perl -e '@i=split(/\\|/,"} $menus {"); print $i[} $select {];'}
Set $select=(GetOutput $sel 1 -1)
Set $cmd={perl $HOME/.fvwm/scripts/editmenu.pl 2 "} $select {"}
Set $dane=(GetOutput $cmd 1 -1)
Set $submenu={perl $HOME/.fvwm/scripts/editmenu.pl 3 '} $dane {'}
Set $submenu=(GetOutput $submenu 1 -1)
Set $click=0
ChangeTitle 1 $submenu
End
Else
Begin
Set $olditem=$item
   Set $click=0
End    
End
End

Widget 2

Property
Type PushButton
Position 220 20
Flags NoReliefString
Size 50 20
Title {Dodaj Pozycje}

Main
Case message of
    SingleClic:
    Begin
Set $s=(GetValue 1)
Set $s=(Add $s -1)
Set $ss={perl -e '@i=split(/\\|/,""} $dane {""); print $i[1];'}
Set $ss=(GetOutput $ss 1 -1)
ChangeTitle 3 $ss
    End
End

Widget 3

Property
Type TextField
Position 220 70
Flags NoReliefString
Size 140 20
Title {}

Main
Case message of
    SingleClic:
    Begin
    End
End

Widget 4

Property
Type TextField
Position 220 120
Flags NoReliefString
Size 140 20
Title {}

Main
Case message of
    SingleClic:
    Begin
    End
End
scrypt editmenu.pl - perl

$r="";
if ($ARGV[0]==1) {
    open(P,"/home/fpanki/.fvwm/.fvwm2rc");
    $w="AddToMenu";
    while ($l=

) {
$t=substr($l,0,9);
if($t eq $w) {
   $r.=substr($l,10,-1)."|";
}
    }
    close(P);
    $r=substr($r,0,-1);
    print $r;
}

if ($ARGV[0]==2) {
@wybor=split(/\\|/,$ARGV[1]);
open(P, "/home/fpanki/.fvwm/.fvwm2rc");
$w="AddToMenu ".$wybor[$ARGV[2]];
while ($l=

) {
$t=substr($l,0,-1);
if($t eq $w) {
    $o=1;
}
if($t eq "#endmenu") {
$o=0;
break;
}
if($o==1){
$r.=$t."|";
}
}
$r=substr($r,0,-1);
print $r;
close(P);
}
if ($ARGV[0]==3) {
@dane=split(/\\|/, $ARGV[1]);
foreach $linia(@dane){
@slinia=split(/"/, $linia);
if ($slinia[1] ne "") {
$r.=$slinia[1]."|";
}
}
$r=substr($r,0,-1);
print $r;
}