User:Hleinola

From ICO wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Quest lahendus 37 - Skript, mis leiab etteantud kataloogist kõik katkised nimelingid [Bash]

#!/bin/bash
#Autor: Henrik Leinola
#Versioon: 0.1

OODATUD_ARGU=1
REKURSIIVSELT="-r"

die () {
	echo >&2 "$@"
	exit 1
}

if [ $# -lt $OODATUD_ARGU ]; then
	die "Kasutamine:" $0 "ja kataloogi nimi."
fi

if [ ! -d $1 ]; then
	die "Tegemist ei ole kataloogiga."	 
fi

if [ $# -gt $OODATUD_ARGU ]; then

	if [ $2 == $REKURSIIVSELT ]; then
		find $1 -type l ! -exec test -r {} \; -print 2>/dev/null
	else 
		die "Rekursiivselt otsimiseks kasuta -r argumenti."
	fi
else
	ind $1 -maxdepth 1 -type l ! -exec test -r {} \; -print 2>/dev/null
fi
exit 0

Powershell kodutöö

#Skript, eemaldab mp3 faili nimest alakriipsud ja muudab kõikide sõnade esimese tähe suureks
#Autor: Henrik Leinola

Param($Path)

$Extension = "mp3"

if (Test-Path $Path)
{
       cd $Path
       $AllFiles = Get-ChildItem . *.$Extension | % { [IO.Path]::GetFileNameWithoutExtension($_) }
}
else
{
       Write-Host "Sellist kausta ei eksisteeri"
       exit
}

foreach ($File in $AllFiles) {
       $String = $File.ToString()
       $String = $String -replace '_',' '
       $String = $String.ToLower()
       $String = (Get-Culture).TextInfo.ToTitleCase($String)
       Rename-Item "$File.$Extension" "$String.$Extension"
}

cd ..

Pythoni kodutöö

#!/usr/bin/python
# -*- coding: utf-8 -*-
#Autor: Henrik Leinola
#Skript, mis võtab teksti failist ees- ja perenime ning teeb nendest kasutaja nime, genereerib parooli ja loob vastava kasutaja ning väljastab tulemused uude tekstifaili.

import sys, os, random

NewName = True
String = ""
LowerCase = "abcdefhijklmnopqrstuv"
UpperCase = "ABCDEFGHIJKLMNIPQRSTUV"
Numbers = "1234567890"

if os.getuid() != 0:
	print "Käivita skript juurkasutaja õigustes!"
	sys.exit(1)

if len(sys.argv) == 3:
	SourceFile = sys.argv[1]
	OutFile = sys.argv[2]
else:
	print "Kasuta skripti järgmiselt: " + sys.argv[0] + " <sisend fail> <väljund fail>"
	sys.exit(1)

def GeneratePassword():
	password = ""
	for i in range(1,12):
		rand = random.randrange(1,4)
		if rand == 1:
			rand = random.randrange(1,len(LowerCase))
			char = LowerCase[rand]
		elif rand == 2:
			rand = random.randrange(1,len(UpperCase))
			char = UpperCase[rand]
		else:
			rand = random.randrange(1,len(Numbers))
			char = Numbers[rand]
		password = password + char
	return password

fh = open(SourceFile)
AllLines = fh.readlines()
fh.close()

fw = open(OutFile,"w")
for line in AllLines:
	name = line.split()
	for part in name:
		if NewName:
			Counter = len(name)
			NewName = False

		String = (String + part[:4])
		Counter = Counter - 1
		if Counter == 0:
			NewName = True
			UserPassword = GeneratePassword()
			Write = (String + " " + UserPassword)
			fw.write(Write  + "\n")
			os.system ("useradd -m -d /home" + String + " " + String + " ")
			os.system ("echo " + String + ":" + UserPassword + "| chpasswd ")
			String = ""
fw.close()