Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Tiedostonimen muokkaus scriptissä

5 views
Skip to first unread message

Viljo Mustonen

unread,
Apr 22, 2013, 11:09:11 AM4/22/13
to

Scriptissä olisi tiedostonimi muotoa:
/polku/BackupinNimi-130421+1852.1.dar
Sen lopusta pitäisi poistaa .1.dar
1 tilalla voi olla numerot 1 ... 99.

Mitenkähän tuon voisi yksinkertaisimmin tehdä.

--
Viljo

Teemu Likonen

unread,
Apr 22, 2013, 11:26:27 AM4/22/13
to
Viljo Mustonen kirjoitti 22.4.2013 kello 18.09:

> Scriptissä olisi tiedostonimi muotoa:
> /polku/BackupinNimi-130421+1852.1.dar
> Sen lopusta pitäisi poistaa .1.dar
> 1 tilalla voi olla numerot 1 ... 99.

Tämmöinen toimii:

#!/bin/sh

nimi=/polku/BackupinNimi-130421+1852.1.dar
nimi=${nimi%.*.dar}
echo "$nimi"

Jussi Piitulainen

unread,
Apr 22, 2013, 11:46:49 AM4/22/13
to
Kenties tuommoinen ${parametri%hahmo}-laajennus:

$ FOO=/polku/BackupinNimi-130421+1852.1.dar
$ echo ${FOO%.*.*}
/polku/BackupinNimi-130421+1852
$ echo ${FOO%.*}
/polku/BackupinNimi-130421+1852.1

Niin voisi ehkä sanoa mv "$FOO" "${FOO%.*.*}",
jos siis on jo jotenkin vakuuttunut siitä, että
tarkoitettu pääte on sillä tiedostonimellä eikä
välitä siitä, että xxx.2.dar ja xxx.1.dar
kuvautuvat samaksi nimeksi xxx.

(man bash, parameter expansion)

Viljo Mustonen

unread,
Apr 22, 2013, 12:36:08 PM4/22/13
to
Kiitokset!

Sehän on tosi yksinkertainen toimiva! :)

Pitäisi todellakin yrittää syventyä paremmin bashin saloihin.

--
Viljo

Viljo Mustonen

unread,
Apr 22, 2013, 1:24:51 PM4/22/13
to
Kiitokset!

Toimii täsmälleen samoin kuin Teemun versio.
Kerkesin jo toivoa, että Teemun versio antaisi virheen
jos päätteenä on dar:n asemasta vaikkapa XXX.
Eipä antanut virhettä, mutta eipä tuo niin vakavaa ole.

--
Viljo

0 new messages