Skriptitaito ei riittänyt tähän.
Tarkoituksena on saada selville sed-komennolla tai perlillä päivittäin vaihtuvasta linkistä vain tiedoston nimi, tässä tapauksessa "PROGRAMME_60MN_060410.mp3"
Linkki on tätä muotoa:
http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3
Jos tämä tieto auttaa, niin linkin polku "http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/" ja
PROGRAMME-sana pysyy aina vakiona, vain loppuosa muuttuu.
Kiitos etukäteen.
Apua sed-komennon/perlin kanssa
Xcode, Mac OS X Server sekä muuta hauskaa ja hyödyllistä
8 viestiä
• Sivu 1/1
-
- Viestit: 58
- Liittynyt: 6.4.2005 klo 18.36
Apua sed-komennon/perlin kanssa
Viesti Kirjoittaja mekong »
-
- Viestit: 937
- Liittynyt: 5.6.2006 klo 13.48
- Paikkakunta: Helsinki
Re: Apua sed-komennon/perlin kanssa
Viesti Kirjoittaja morbusg »
Koodi: Valitse kaikki
echo 'http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3' | sed 's/.*\(PROGRAMME.*\)/\1/'
PROGRAMME_60MN_328753.mp3
2) .* = mikä tahansa merkki nolla, tai useamman kerran
3) \(jotain\) otetaan sisältö muistiin talteen
4) \1 palautetaan edellisen kohdan sisältö muistista
sed tosin tuntuu jotenkin väärältä työkalulta tähän hommaan kun se on rivi-orientoitunut ohjelma.
MUOKS: juu eli toinen voisi olla:
Koodi: Valitse kaikki
expr "http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3" : '.*\(PROGRAMME.*\)'
rubyllä:
Koodi: Valitse kaikki
echo "http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3" | ruby -ne 'puts $_.split("/")[-1]'
Viimeksi muokannut morbusg, 7.4.2010 klo 0.00. Yhteensä muokattu 1 kertaa.
-
- Viestit: 1014
- Liittynyt: 6.11.2004 klo 19.35
Re: Apua sed-komennon/perlin kanssa
Viesti Kirjoittaja nobu178 »
Onko pakko käyttää sediä tai perliä? Pelkällä bashillakin toi hoituu helposti:
Tuloksen pitäisi olla "PROGRAMME_60MN_328753.mp3".
Pieni lisäys, että tietysti "basename" on ihan kätevä.
Pahoittelen ketjun saastuttamista, jos olet syystä tai toisesta etsinyt nimenomaan sediä tai perliä käyttäviä ratkaisuja.
Koodi: Valitse kaikki
tiedosto="http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3"; echo ${tiedosto##*/}
Pieni lisäys, että tietysti "basename" on ihan kätevä.
Koodi: Valitse kaikki
echo $(basename http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3)
-
- Viestit: 937
- Liittynyt: 5.6.2006 klo 13.48
- Paikkakunta: Helsinki
Re: Apua sed-komennon/perlin kanssa
Viesti Kirjoittaja morbusg »
Nuo molemmat on kyllä ihan mielettömän elegantteja! Basename on tässä yhteydessä nähdäkseni paras vaihtoehto.nobu178 kirjoitti:Onko pakko käyttää sediä tai perliä? Pelkällä bashillakin toi hoituu helposti:
Tuloksen pitäisi olla "PROGRAMME_60MN_328753.mp3".Koodi: Valitse kaikki
tiedosto="http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3"; echo ${tiedosto##*/}
Pieni lisäys, että tietysti "basename" on ihan kätevä.
Pahoittelen ketjun saastuttamista, jos olet syystä tai toisesta etsinyt nimenomaan sediä tai perliä käyttäviä ratkaisuja.Koodi: Valitse kaikki
echo $(basename http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3)
-
- Viestit: 1351
- Liittynyt: 11.12.2009 klo 21.11
Re: Apua sed-komennon/perlin kanssa
Viesti Kirjoittaja jpsuominen »
Vielä yksi tapa tehdä sedillä:
echo <urli> | sed -e 's/.*\///'
Ulkomuistista tuon rimpsun pitäisi poistaa kaikki merkit mukaanlukien viimeinen kenoviiva.
Perlissä tuo taipuu vaikkapa seuraavanlaiseksi:
$url =~ s/.*\///;
echo <urli> | sed -e 's/.*\///'
Ulkomuistista tuon rimpsun pitäisi poistaa kaikki merkit mukaanlukien viimeinen kenoviiva.
Perlissä tuo taipuu vaikkapa seuraavanlaiseksi:
$url =~ s/.*\///;
-
- Viestit: 937
- Liittynyt: 5.6.2006 klo 13.48
- Paikkakunta: Helsinki
Re: Apua sed-komennon/perlin kanssa
Viesti Kirjoittaja morbusg »
Ja mannaa senkun sataa. Piti oikein hetki miettiä mitä tuossa rexpissä tapahtuu, ja sitten tuli tosi tyhmistynyt olo kun tajusi miten simppeli se onjpsuominen kirjoitti:Vielä yksi tapa tehdä sedillä:
echo <urli> | sed -e 's/.*\///'
Ulkomuistista tuon rimpsun pitäisi poistaa kaikki merkit mukaanlukien viimeinen kenoviiva.
Perlissä tuo taipuu vaikkapa seuraavanlaiseksi:
$url =~ s/.*\///;
![Punastuu [:$]](./images/smilies/icon_redface.gif)
-
- Viestit: 1351
- Liittynyt: 11.12.2009 klo 21.11
Re: Apua sed-komennon/perlin kanssa
Viesti Kirjoittaja jpsuominen »
Basename on hyvä, mutta tuo "echo $()"-rimpsu on harvinaisen turha kun pelkkä basename-komento tekee ihan saman asian...nobu178 kirjoitti: Pieni lisäys, että tietysti "basename" on ihan kätevä.
Koodi: Valitse kaikki
echo $(basename http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3)

-
- Viestit: 1014
- Liittynyt: 6.11.2004 klo 19.35
Re: Apua sed-komennon/perlin kanssa
Viesti Kirjoittaja nobu178 »
Tulipas tehtyä, kun unen tarve on suurijpsuominen kirjoitti:Basename on hyvä, mutta tuo "echo $()"-rimpsu on harvinaisen turha kun pelkkä basename-komento tekee ihan saman asian...nobu178 kirjoitti: Pieni lisäys, että tietysti "basename" on ihan kätevä.
Koodi: Valitse kaikki
echo $(basename http://telechargement.rfi.fr.edgesuite.net/rfi/languages/audio/modules/actu/201004/PROGRAMME_60MN_328753.mp3)
![Punastuu [:$]](./images/smilies/icon_redface.gif)
Hmmmm aivot ei millään toimi enää kunnolla. Koetan kuitenkin sen verran tarkentaa, että echo on tietysti aivan tyhmä tossa, mutta tohon echon sijasta voisi laittaa joitain järkevämpiä juttuja, kuten tavallisesti tehdäänkin. Pääasia, että toi on sen verran kompakti, että voi helposti sujauttaa muuhun vaikkapa $():ita (tai ``) käyttämällä. Tähän aikaan ei vaan millään jaksa mitään hyödyllisiä komentorivejä pitkälti kirjoitella. Vielä kerran pahoittelen kirjoittamiani juttuja, jos ketjun aloittajalle sedin tai perlin käyttö on ehdoton juttu. Lähdenpä tästä auennutta mahahaavaa parantelemaan...
8 viestiä
• Sivu 1/1
Palaa sivulle “Ohjelmointi, skriptit ja palvelimet”
Hyppää
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit