|
| noget der vist skulle være noget simpelt R~ Fra : rené |
Dato : 12-07-06 19:28 |
|
Hej Gruppe,
Jeg har et lille problem her, som skulle være forholdsvist simpelt, og
alligevel kan jeg ikke helt knække den..
Jeg har et shell-script der kigger mit billed-arkiv (som vises med
ApacheGallery) efter de sidste 15 .comment/.folder-filer og laver et pænt
html-dokument ud fra disse.
(forenklet):
for f in $(find . -mindepth 3 -maxdepth 3 -type d| tail -n 15 | sort -r);
do
echo "<div><a href=\"$f/\">`cat $f.folder`</a> <br>`head -n2 $f.comment |
grep -v TITLE`...</div>" >>index2.shtml;
done
mine filer ligger struktureret i mapper der er navngivet efter åååå/mm/dd,
således at $f altid vil indeholde noget der slutter med .../åååå/mm/dd
Det jeg ønsker er, at få formateret de sidste 3 led i folder-navnet til en
'åååå-mm-dd'-streng som jeg kan outputte til min html-fil også, og det er
dette der knager lidt med..
Al hjælp modtages med kyshånd :)
Mvh
/rené
| |
Klaus Alexander Seis~ (12-07-2006)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 12-07-06 20:08 |
|
René skrev:
> Det jeg ønsker er, at få formateret de sidste 3 led i folder-
> navnet til en 'åååå-mm-dd'-streng som jeg kan outputte til min
> html-fil også, og det er dette der knager lidt med..
Hjælper
$ tr '/' '-' <<< åååå/mm/dd
åååå-mm-dd
$
lidt på vej?
Mvh,
--
Klaus Alexander Seistrup
SubZeroNet, Copenhagen, Denmark
http://magnetic-ink.dk/
| |
Kent Friis (12-07-2006)
| Kommentar Fra : Kent Friis |
Dato : 12-07-06 21:04 |
|
Den Wed, 12 Jul 2006 19:08:20 +0000 (UTC) skrev Klaus Alexander Seistrup:
> René skrev:
>
>> Det jeg ønsker er, at få formateret de sidste 3 led i folder-
>> navnet til en 'åååå-mm-dd'-streng som jeg kan outputte til min
>> html-fil også, og det er dette der knager lidt med..
>
> Hjælper
>
> $ tr '/' '-' <<< åååå/mm/dd
> åååå-mm-dd
> $
"<<<"? Hvor hulen har du set den henne? Det er ikke engang en bash-
extension, i hvert fald ikke i den bash jeg har.
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
Klaus Alexander Seis~ (12-07-2006)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 12-07-06 21:10 |
|
Kent Friis skrev:
>> Hjælper
>>
>> $ tr '/' '-' <<< åååå/mm/dd
>> åååå-mm-dd
>> $
>
> "<<<"? Hvor hulen har du set den henne? Det er ikke engang en
> bash-extension, i hvert fald ikke i den bash jeg har.
Nå, det virker ellers i min bash. Meget bekvem konstruktion, i
øvrigt!
Lad mig se... Dér var den (i bash(1)):
#v+
Here Strings
A variant of here documents, the format is:
<<<word
The word is expanded and supplied to the command on its standard input.
#v-
Kend din bash (men måske er det kun i v3+?).
(Nu var det ikke "<<<" der var det interessante, men "tr '/' '-'".)
Mvh,
--
Klaus Alexander Seistrup
SubZeroNet, Copenhagen, Denmark
http://magnetic-ink.dk/
| |
Klaus Alexander Seis~ (12-07-2006)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 12-07-06 21:24 |
| | |
Kent Friis (13-07-2006)
| Kommentar Fra : Kent Friis |
Dato : 13-07-06 17:49 |
|
Den Wed, 12 Jul 2006 20:23:38 +0000 (UTC) skrev Klaus Alexander Seistrup:
> Jeg skrev for lidt siden:
>
>> måske er [<<<] kun i [bash] v3+?
>
> Wikipedia siger at den feature med 'here strings' kom i v2.05b:
> http://en.wikipedia.org/wiki/Bash
$ bash --version
GNU bash, version 2.04.0(1)-release (i386-suse-linux)
Copyright 1999 Free Software Foundation, Inc.
Hvem hulen er den (bandeord) der indfører helt nye features ved
versionsnummerskift ude på anden decimal?
Og hvad er der i vejen med echo?
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
Klaus Ellegaard (13-07-2006)
| Kommentar Fra : Klaus Ellegaard |
Dato : 13-07-06 17:58 |
|
Kent Friis <nospam@nospam.invalid> writes:
>Hvem hulen er den (bandeord) der indfører helt nye features ved
>versionsnummerskift ude på anden decimal?
Ehm... hvis man kigger på Linux's a.b.cc.d, så må introduktionen
af nye ting dér jo foregå på 5. decimal?
>Og hvad er der i vejen med echo?
Mjah, jeg må sige, at jeg også finder deres <<< idé noget grim.
Men selve ideen med bash er vist også at være en rodebutik, der
til gengæld kan en masse.
Mvh.
Klaus.
| |
Kent Friis (13-07-2006)
| Kommentar Fra : Kent Friis |
Dato : 13-07-06 21:31 |
|
Den Thu, 13 Jul 2006 16:57:44 +0000 (UTC) skrev Klaus Ellegaard:
> Kent Friis <nospam@nospam.invalid> writes:
>
>>Hvem hulen er den (bandeord) der indfører helt nye features ved
>>versionsnummerskift ude på anden decimal?
>
> Ehm... hvis man kigger på Linux's a.b.cc.d, så må introduktionen
> af nye ting dér jo foregå på 5. decimal?
"Helt nye features"?
Hvornår har vi sidst fået helt nye features? NPTL er vel den sidste
større omgang (men jeg har vist ikke fulgt så meget med på det
sidste), ellers går det vel mest på bug-fixes og driver-opdateringer
når vi snakker 5. decimal.
>>Og hvad er der i vejen med echo?
>
> Mjah, jeg må sige, at jeg også finder deres <<< idé noget grim.
> Men selve ideen med bash er vist også at være en rodebutik, der
> til gengæld kan en masse.
Og hvis man bruger det, virker ens script ikke første gang man
forsøger at køre den på andet end en ny-installeret Linux-maskine...
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
Klaus Ellegaard (13-07-2006)
| Kommentar Fra : Klaus Ellegaard |
Dato : 13-07-06 21:39 |
|
Kent Friis <nospam@nospam.invalid> writes:
>> Ehm... hvis man kigger på Linux's a.b.cc.d, så må introduktionen
>> af nye ting dér jo foregå på 5. decimal?
>"Helt nye features"?
Som f.eks. et helt nyt abstraktionslag til CAM-kommunikation i
v4l... okay, det er ikke en kerne-feature, men det distribueres
dog med kernen.
Strengt taget er "<<<" vel på nogenlunde samme niveau; det er
ikke en core-feature i bash - bare et "nifty add-on".
Mvh.
Klaus.
| |
Kent Friis (16-07-2006)
| Kommentar Fra : Kent Friis |
Dato : 16-07-06 14:11 |
|
Den Thu, 13 Jul 2006 20:39:22 +0000 (UTC) skrev Klaus Ellegaard:
> Kent Friis <nospam@nospam.invalid> writes:
>
>>> Ehm... hvis man kigger på Linux's a.b.cc.d, så må introduktionen
>>> af nye ting dér jo foregå på 5. decimal?
>
>>"Helt nye features"?
>
> Som f.eks. et helt nyt abstraktionslag til CAM-kommunikation i
> v4l... okay, det er ikke en kerne-feature, men det distribueres
> dog med kernen.
>
> Strengt taget er "<<<" vel på nogenlunde samme niveau; det er
> ikke en core-feature i bash - bare et "nifty add-on".
Men dog en add-on der gør at scripts ikke kan køre på maskiner der
kører en anden version.
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
Klaus Alexander Seis~ (17-07-2006)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 17-07-06 06:57 |
|
Kent Friis skrev:
>> Strengt taget er "<<<" vel på nogenlunde samme niveau; det
>> er ikke en core-feature i bash - bare et "nifty add-on".
>
> Men dog en add-on der gør at scripts ikke kan køre på maskiner
> der kører en anden version.
Sådan vil det jo ofte være med nye ting. Hvis vi kun må skrive
portable scripts, så kunne vi alle holde os til ksh93 og lade være
med at tænke nyt overhovedet - så har shelssforfatterne kun bug-
fixing at tænke på.
Mvh,
--
Klaus Alexander Seistrup
SubZeroNet, Copenhagen, Denmark
http://magnetic-ink.dk/
| |
Klaus Alexander Seis~ (13-07-2006)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 13-07-06 18:32 |
|
Kent Friis skrev om '<<<':
> Hvem hulen er den (bandeord) der indfører helt nye features
> ved versionsnummerskift ude på anden decimal?
Pass.
> Og hvad er der i vejen med echo?
Intet, men jeg finder det mere bekvemt at trykke tre gange på '<'
med samme finger end først at skulle skrive 'echo' og dernæst lave
en '|' ved at trykke på to taster, og '<<<' er en af de features
jeg tog til mig med det samme da jeg opdagede den.
Mvh,
--
Klaus Alexander Seistrup
SubZeroNet, Copenhagen, Denmark
http://magnetic-ink.dk/
| |
Kent Friis (13-07-2006)
| Kommentar Fra : Kent Friis |
Dato : 13-07-06 21:32 |
|
Den Thu, 13 Jul 2006 17:32:15 +0000 (UTC) skrev Klaus Alexander Seistrup:
> Kent Friis skrev om '<<<':
>
>> Hvem hulen er den (bandeord) der indfører helt nye features
>> ved versionsnummerskift ude på anden decimal?
>
> Pass.
>
>> Og hvad er der i vejen med echo?
>
> Intet, men jeg finder det mere bekvemt at trykke tre gange på '<'
> med samme finger end først at skulle skrive 'echo' og dernæst lave
> en '|' ved at trykke på to taster, og '<<<' er en af de features
> jeg tog til mig med det samme da jeg opdagede den.
Lad mig gætte... Du har aldrig skullet have et af dine scripts til
at køre på fx en HP-UX maskine?
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
Klaus Alexander Seis~ (13-07-2006)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 13-07-06 22:09 |
|
Kent Friis skrev:
> Lad mig gætte... Du har aldrig skullet have et af dine scripts
> til at køre på fx en HP-UX maskine?
Hvis jeg havde brug for det, ville jeg nok have skrevet anderledes.
Mvh,
--
Klaus Alexander Seistrup
SubZeroNet, Copenhagen, Denmark
http://magnetic-ink.dk/
| |
rené (12-07-2006)
| Kommentar Fra : rené |
Dato : 12-07-06 22:01 |
|
Klaus Alexander Seistrup wrote:
> René skrev:
>> Det jeg ønsker er, at få formateret de sidste 3 led i folder-
>> navnet til en 'åååå-mm-dd'-streng som jeg kan outputte til min
>> html-fil også, og det er dette der knager lidt med..
> Hjælper
> $ tr '/' '-' <<< åååå/mm/dd
> åååå-mm-dd
> $
> lidt på vej?
halli-hallo.. det var jo lige præcist sådan noget der rykkede. Nu skal jeg
så bare tænke mig lidt til hvordan jeg undgår, at './2006/07/09' bliver
til '.-2006-07-09', men jeg tænker mig lidt til, om man med tr kunne
trække alle tallene ud, og så bagefter formattere om med printf? jeg
prøver i hvertfald, og tak for nu :)
/rené
| |
rené (12-07-2006)
| Kommentar Fra : rené |
Dato : 12-07-06 22:18 |
|
rené wrote:
> halli-hallo.. det var jo lige præcist sådan noget der rykkede. Nu skal jeg
> så bare tænke mig lidt til hvordan jeg undgår, at './2006/07/09' bliver
> til '.-2006-07-09', men jeg tænker mig lidt til, om man med tr kunne
> trække alle tallene ud, og så bagefter formattere om med printf? jeg
> prøver i hvertfald, og tak for nu :)
> /rené
ok :
$ tr -d '.' './2006/07/09/' ->
$ tr -d '/' '/2006/07/09/' -> '20060709'
Så ser det jo pænere ud. Der er dog to hurdles:
1) jeg kan ikke altid være sikker på, at der ikke eventuelt står nogen
ikke-tal foran f.eks. '2006'. Det vil dog være et ekstremt
undtagelses-tilfælde, så det er ikke så vigtigt..
2) jeg forgreb mig på fprint tidligere.. fprint kan ikke printe udvalgte
dele af en streng.. bummer..
Nogen ideer?
/rené
| |
rené (12-07-2006)
| Kommentar Fra : rené |
Dato : 12-07-06 22:28 |
|
Case closed.. sed gjorde tricket:
echo "$f" | sed -r -e 's/.*\/([0-9]*)\/([0-9]*)\/([0-9]*)$/\1-\2-\3/'
(hvor $f er min streng..)
tak for inputtet dog.. jeg kendte godt sed, men havde ikke lige
forestillet mig at det blev løsningen :)
Mvh
/rené
| |
|
|