Gå til innhold

enkelt script for å luke ut tekstlinjer fra et dokument


Anbefalte innlegg

Hei. 

 

Jeg er på utkikk etter et program/script som kan ta utgangspunkt i en fil med tekstlinjer (f.eks. brukernavn) for så å søke etter -og så slette disse tekstlinjene hvis de finnes i et gitt dokument.

 

"f.eks." i denne sammenhengen er ganske reelt, altså, jeg trenger et program som kan luke ut brukernavn fra en stor liste (tekstfil) i formatet "fornavn-mellomnavn.etternavn" (max 15 tegn, altså Geir Johannes Melhus blir "geir-johannes.m").

 

 

Er dette gjennomførbart, og er det noen her som tar utfordringen?

 

På forhånd takk! :)

Endret av JKJK
Lenke til kommentar
Videoannonse
Annonse

burde muligens nevnt at det gjelder windows?

Powershell er jo installerbart på andre MS OS, så det høres ut som en god ide! Det kan være snakk om flere hundre linjer, så man må kunne bruke en txtfil som referanse.

 

Jeg har ikke brukt powershell noe særlig (har såvidt sett på det), og kan fint lite om scripting og programmering, så må ha "bruksanvisning" hvis man kan kalle det dèt.

 

Har feelingen av at glenn er inne på noe her. Tar gjerne imot mer info! Takk! :)

Lenke til kommentar

To spørsmål: 1. Dette bestemte dokumentet, hva slags filtype er det, en txt-, en doc-, en pdf-fil eller hva? 2. Disse navnene som skal slettes, hva skal settes inn der da, ingenting slik alt for ekesmpel trekker seg sammen, et antall ordmellomrom eller hva?

Lenke til kommentar

OK. Tar det når jeg kommer på jobb på tirsdag.

Kan ikke gi deg den orginale filen, da innholdet er til en viss grad konfidensiellt. Men kan gi deg format og eksempler som burde være nok til å skjønne poenget.

Endret av JKJK
Lenke til kommentar

Så lenge formatet og strukturen er lik så er det samme f. hva som står der. Trenger egentlig ikke mer enn en linje men fint hvis du markerer hvilke deler av linjen som kan endre seg og hvordan.

 

Det er viktig å bruke de samme tegnene som kan dukke opp i den virkelige filen, f.eks. hvis et felt kan inneholde punktum er det viktig.

 

Hvis en linje inneholder flere felt er det viktig at du spesifiserer korrekt separator tegn.

Lenke til kommentar

Dette et produsert eksempel på hvordan fila ser ut:

 

[EnabledGroups]
SVG-0809-3STD=TRUE
SVG-0809-3STF=TRUE
SVG-0809-3AAC=TRUE
svg-0809-ansatte=TRUE
[Exceptions]
ola-hermann.nor=TRUE
lars.normann=TRUE
lars-even-hanse=TRUE
kari-cecilie.no=TRUE
[DEFAULT]
Cont=TRUE

 

 

Det er kun brukernavn under "exceptions" som skal kunne fjernes. Normalt er det mange hundre brukernavn i det formatet som står. Det må derfor gå an å ha en separat fil med de brukernavnene som skal fjernes som scriptet eller hva det nå enn blir henter fra, og fjerner fra ini-fila.

 

Det kan ikke stå igjen tomme linjer i fila.

 

Fila som inneholder de brukernavnene som skal fjernes vil bare være en enkel tekstfil med masse brukernavn, ikke noe mer fancy.

Endret av JKJK
Lenke til kommentar
  • 3 uker senere...

$ grep -Ff kildefil.txt -v ActD.ini > ferdigactd.txt

fungerte. Det virker som den blir skrevet i et annet format, men det er ikke sikkert det har så mye å si.

 

Jeg synes enda det er litt for tungvindt, så håper på et vbs script eller noe i den duren der man får opp en liten dialogboks der man velger kilde og målfil og trykker "ok" eller noe sånt :p

 

 

Det VIRKELIG store hadde vært et script som hadde hentet brukernavnene til medlemmene i en gruppe i AD, lagt til =TRUE bak brukernavnet og fjernet fra målfila. :)

Endret av JKJK
Lenke til kommentar

Flott, bare hyggelig. Hvis du lærer deg de andre programmene, sed, awk, find, uniq, sort, tail, wc, screen, scp, ssh, rsync, strace, lsof, date, seq, tr, join, tcpdump, wget, nc osv osv. og bash-scripting og alle bash special commands/variables og vim så får du gjort ganske mye veldig enkelt :)

Endret av teflonpanne
Lenke til kommentar

Hehe. Hva med å starte med "for dummies"? :D

 

De andre som skal bruke scriptet syntes den totale prosedyren var litt for komplisert (for mange ledd... har et vbs script som henter ut navn fra grupper i AD, så må man redigere dette i excell og notepad etterpå... god gammeldags EDB med andre ord).

 

Det med at man måtte installere cygwin var liksom spikeren i kista.... synd for dem. Vi har nå en løsning som kan spare oss MANGE TIMER med jobb i uka, og hvis de vil sitte der og pelle ut en og en linje, så versågod. Jeg bruker grep, og gjør hele prosedyren på 3 minutter istedet for 3 timer. :)

Endret av JKJK
Lenke til kommentar

Helt klart. Det er ikke bare på jobben "min", men på resten av it-avdelingene på andre skoler i fylkeskommunen også.

 

Generelt har NTFK sentralt en tendens til å prioritere litt sært i slike tilfeller.... og jeg passer på å nevne det hver gang jeg har sjangsen. Siden dette er noe som gjelder alle, og er en jobb som er "presset" på it-avdelingene fra sentralt hold, synes jeg det blir feil at VÅR avdeling skal ta kostnaden med dette alene.

 

Programmet vi bruker dette mot har egentlig en slik funksjon innebygd, med GUI til og med. Problemet er at den i praksis er UBRUKELIG.

 

Derfor har jeg allerede vært i kontakt med eksterne konsulenter ang. utvikling av dette, men jeg velger å vente med å ta steget videre for å se om det vil bli gjort forbedringer i det programmet det er snakk om.

 

Men nok baksnakking. :)

 

Uansett har dette blitt en såpass viktig oppgave at jeg så meg nødt til å finne en litt mer effektiv metode, om ikke annet som en nødløsning.

Endret av JKJK
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...