[UNIX] Omzetting naar lowercase

Pagina: 1
Acties:

  • It-er
  • Registratie: September 2000
  • Laatst online: 09-02 07:15
Ik draai hier een Solaris 8 systeem en wil bepaalde waardes omzetten naar lowercase.


Ik zoek op bepaalde namen in een database en zet er iets voor of achter:

name matches ".*-FastEthernet.*" :
{
setAlias ("GIN-$1-FA$2");
}
name matches ".*-GigabitEthernet.*" :
{
setAlias ("GIN-$1-GE$2");
}
name matches ".*-.*" :
{
setAlias ("GIN-$1-$2");
}

Bij alle zoekacties moet de $1 waarde in lowercase letters bij de Aliasnaam neergezet worden.

Is er een commando die dit doet? Ik kan niks vinden waar dit precies omschreven wordt, en de meeste (gevonden) commando's werken niet.

[ Voor 9% gewijzigd door It-er op 20-04-2004 10:18 ]

what is your major malfunction???


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

tr '[A-Z]' '[a-z]'

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • It-er
  • Registratie: September 2000
  • Laatst online: 09-02 07:15
ja da's voor file-name's. Of kan ik dit ook in de syntax plaatsen? setAlias ("GIN-$1-$2");

[ Voor 17% gewijzigd door It-er op 20-04-2004 10:17 ]

what is your major malfunction???


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

It-er schreef op 20 april 2004 @ 10:16:
[...]

ja da's voor file-name's. Of kan ik dit ook in de syntax plaatsen? setAlias ("GIN-$1-$2");
Wat voor script heb je gepost, is dit een shellscript? En 'dat' is niet voor filenames; het is gewoon een unix utility waarmee je characters kunt vervangen voor andere characters, of dit nou filenames, environment variables of de inhoud van een bestand is :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • It-er
  • Registratie: September 2000
  • Laatst online: 09-02 07:15
Spider.007 schreef op 20 april 2004 @ 10:20:
[...]


Wat voor script heb je gepost, is dit een shellscript? En 'dat' is niet voor filenames; het is gewoon een unix utility waarmee je characters kunt vervangen voor andere characters, of dit nou filenames, environment variables of de inhoud van een bestand is :)
Bovenstaand script is een ASCII file...het wordt gebruikt om bepaalde namen om te zetten alvorens deze in een configuratie-file geplaatst worden.

Het wordt binnen een monitoring programma gebruikt...ze noemen het daar een (rule) dcr-file. Ik zet de naam van gediscoverde elementen binnen het netwerk om naar andere namen. 1 van de eisen is lowercase letters.

het tr-commando zal ik dan buiten de "-jes moeten zetten neem ik aan?

[ Voor 6% gewijzigd door It-er op 20-04-2004 10:31 ]

what is your major malfunction???


  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 04-12-2025
Het is dus geen shellscript waarschijnlijk. Misschien kan je toch shell-opdrachten laten uitvoeren door een commando tussen `` te zetten (niet gewoon enkele quotes, maar die links-boven op je toetsenbord).
Zoiets dus:
code:
1
setAlias ("GIN-"`echo "$1" | tr '[A-Z]' '[a-z]'`" -FA$2");
Maar dit hangt af van hoe je strings aan elkaar kunt plakken.

De afkortingen die je toepast zijn trouwens niet helemaal logisch, FastEthernet ga je afkorten me FA, waarom GigabitEthernet niet met GI? (of FE resp. GE)

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


  • It-er
  • Registratie: September 2000
  • Laatst online: 09-02 07:15
ajvdvegt schreef op 20 april 2004 @ 10:51:
Het is dus geen shellscript waarschijnlijk. Misschien kan je toch shell-opdrachten laten uitvoeren door een commando tussen `` te zetten (niet gewoon enkele quotes, maar die links-boven op je toetsenbord).
Zoiets dus:
code:
1
setAlias ("GIN-"`echo "$1" | tr '[A-Z]' '[a-z]'`" -FA$2");
Maar dit hangt af van hoe je strings aan elkaar kunt plakken.

De afkortingen die je toepast zijn trouwens niet helemaal logisch, FastEthernet ga je afkorten me FA, waarom GigabitEthernet niet met GI? (of FE resp. GE)
Hm, commando slikt hij niet...op de 1 of andere manier is het toch iets speciaals van het monitoring-programma. En niet UNIX-achtig.

Wat betreft de naamgeving hebbe ze hier een speciaal iets....vraag me niet waarom.

Is er misschien nog een andere oplossing? ik ga even verder testen

what is your major malfunction???


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

overigens is 'tr A-Z a-z' makkelijker, scheelt quotes.

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Als je nou eens begint met het posten van wat meer info, zoals welke database je gebruikt en hoe het pakket heet waar dat script mee gemaakt is. Dan kunnen wij ook wat gerichter zoeken, ipv unix commando's proberen toe te passen op een syntax die we niet kennen cq script wat het niet ondersteunt.

Wellicht dat je nog een wrapper om dit script heen kunt maken waarin je de database queried en de waardes converteert naar lowercase. Maar nogmaals, zonder dat we weten bij welk pakket dit script hoort, kunnen we er weinig over zeggen...

[ Voor 5% gewijzigd door Verwijderd op 20-04-2004 11:51 ]


  • It-er
  • Registratie: September 2000
  • Laatst online: 09-02 07:15
Verwijderd schreef op 20 april 2004 @ 11:50:
Als je nou eens begint met het posten van wat meer info, zoals welke database je gebruikt en hoe het pakket heet waar dat script mee gemaakt is. Dan kunnen wij ook wat gerichter zoeken, ipv unix commando's proberen toe te passen op een syntax die we niet kennen cq script wat het niet ondersteunt.

Wellicht dat je nog een wrapper om dit script heen kunt maken waarin je de database queried en de waardes converteert naar lowercase. Maar nogmaals, zonder dat we weten bij welk pakket dit script hoort, kunnen we er weinig over zeggen...
Ok, duidelijk...hier volgen de specs:

Systeem: SUN Netra T1
OS: Solaris 8 (4/01)
Software: Concord Ehealth 5.6.5
Database: Oracle 9.0

De syntax van een rule file moet er zo uitzien volgens het programma

init-section
{ statement (variable, filename); } (optional)
condition :
{

actions;
actions; ...
}

...

Er worden netwerk-interfaces gediscoverd op basis van een ip-adres, tijdens het aanmaken van een Aliasnaam (een combinatie van Router+interfacenaam) moet er 1 en ander veranderen. Vandaar de zoekactie in het (tijdelijke) discover-bestand en de manipulatie van de Alias-en.

what is your major malfunction???


  • Michael
  • Registratie: Maart 2000
  • Laatst online: 20-01 19:22
CyBeR schreef op 20 april 2004 @ 11:18:
overigens is 'tr A-Z a-z' makkelijker, scheelt quotes.
Nog meer overigensers (;)): tr A-Z a-z is gewoon fout, en je moet dan ook tr '[:upper:]' '[:lower:]' gebruiken. Dit in verband met het feit dat sommige locale's meer/minder uppercase letters hebben dan lowercase

  • It-er
  • Registratie: September 2000
  • Laatst online: 09-02 07:15
het lijkt erop dat ik niks anders dan setAlias ("Bla-$1-FA$2"); kan/mag gebruiken

misschien nog een andere tip? Of heeft iemand een link waar meer commando's beschreven staan die ik misschien kan testen?

what is your major malfunction???

Pagina: 1