Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1.команда за листање на сите датотеки чие име има повеќе од 5 карактери, каде крајниот е c, а содржат и точка (.) (пр. zad1.c, .javac)
- ----------------------
- ls -l | grep '^-.*' | awk '{ print $10 }' | grep '.*\{5,\}\..*c$'
- ls -la | grep '^-.*' | awk '{ print $10 ;}' | grep '.*\.*c$' | grep '.\{6,\}'
- ls -la | grep '^-' | awk '{print $10;}' | sed -n '/.....*c$/p'
- ls -1ap | grep -v '/$' | grep '^.\{6,\}$' | grep '\.' | grep 'c$'
- ***ls -l | grep '^-' | awk '{print $10;}' | sed -n '/.....*c$/p' | grep '\.'
- ***ls -l | grep '^-' | awk '{ print $10; }' | grep 'c$' | grep '.\{5,\}' | grep '\.'
- 2.команда за листање на сите именици чии имиња се составени само од букви (големи или мали) и цифри (пр. OSgr1, zad1t1)
- ls -l | grep '^d.*' | awk '{print $10}' | grep -E '^*[a-zA-Z0-9]*$'
- ****ls -l | grep '^d'|awk '{ print $10;}' | grep -v [^0-9a-zA-Z]
- 3.Да се напише една команда која ќе отпечати листа на процеси (нивни ID-а) од целиот оперативен систем кои се директно стартувани / контролирани од страна на init процесот (PID = 1). Командата да се зачува како командна процедура под името zad3b-t2.sh.
- ps -ef | awk '{ if ($2 == '1' || $3 == '1') print $0; }'
- Kristijan Bojadjiski
- Kristijan Bojadjiski fala kolega, samo mislam deka ova se bara bidejki vika PID =1 vo $3 e PPID
- ps -ef | awk '{ if ($2 == '1') print $0; }'
- Фросина Стојановска колега јас мислам дека треба да бид $3, затоа што ти вика оние што се директно статувани од PID, што би требало да ги врати неговите деца.. . 😕
- ****ps -ef | awk '{ if ($3 == '1') print $2;}'
- 4.Да се напише командна процедура која во даден именик (прв аргумент)
- и сите негови подименици рекурзивно ќе ги пронајде сите датотеки модифицирани
- во даден временски интервал (втор аргумент).
- За секоја од пронајдените датотеки треба да се изброи колку пати се користат
- командите за филтрирање на текст и тој број да се
- додаде на крајот на самата датотека.
- Направете проверка дали се проследени потребните аргументи и доколку не се,
- прикажете соодветно упатство за употреба.
- Доколку изворниот именик не постои, скриптата треба да го извести корисникот за
- тоа и да заврши неуспешно.
- Да се внимава вториот аргумент на скриптата да биде во форматот "X – Y",
- каде X и Y означуваат час (на пример: "10 – 16", значи од 10:00 до 16:59 часот).
- Командната процедура снимете ја под името zad4-t2.sh,
- во вашиот домашен именик на os.finki.ukim.mk серверот.
- ./script1.sh Imenik 10-15
- https://pastebin.com/08VNDRT5 ( ne iskaca )
- 5.Ispit juni 2017 cel : https://pastebin.com/E4iqreEj
- UNIX: a)ps -ef | grep '^163004' | wc -l
- b)who | grep '^163004' | awk '{ print $5;}' | sed 's/(//' | sed 's/)//'
- Threads : https://github.com/finki-mk/OS/blob/master/synchronization/src/main/java/mk/ukim/finki/os/synchronization/exam17/s1/g1/Scheduler.java
- IO resenie: https://pastebin.com/0TU2Fiwv
- 6.Ispit avgust 2017 cel: https://pastebin.com/2f1Ed5Gb smallFiles resenie:https://pastebin.com/7syVKASX
- UNIX: a) ps -ef | grep '^163004' | wc -l
- b) last | awk '{ if ( $5 == "Sept" ) print $0 }' | awk '{ if ( $6 == "5" ) print $3 }' | sort | uniq
- !--------->CSV format shell<----------MISSING
- 7.Ispit januari 2018 cel : https://pastebin.com/ffvbWtSP , resenie :https://pastebin.com/PGgeBajq
- UNIX: a) who | grep '^163004' | sed -e 's/(//' -e 's/)//' | awk '{print $5;}'
- b) ps -ef | awk '{ if ( $3 == '1') print $2 }'
- BigFiles:BigFiles.txt
- 9.Read Write simulation + unix + scripta (Januari 2017): https://pastebin.com/egDsn6yA
- threads: vo notepad resenieto ReadWrite.txt
- UNIX: b) last | awk '{ if ( $5 == "Jun" ) print $0 }' | awk '{ if ( $6 == "17" ) print $3 }' | sort | uniq
- IO: findDocuments.txt
- 10.https://github.com/jovicailievski/FINKI/tree/master/Operativni%20sistemi/ZadaciZaVezbanje/JavaIO
- I/O:Junska
- ----KG1,KG2-------
- Synh: Muzicki bend,Poker,SJF,TribeDinner2
- 14. i/O izmini: https://pastebin.com/6DTej3kc Izmini.txt resenie
- =================================================================================================
- 11.PrvKol grupa1 2017
- 16.Grupa 2 I/O : https://pastebin.com/SC7M2Zs8(deserialize)
- 15.i/O pomini : https://pastebin.com/S62bUdTV
- 17.Euro 2016 : https://pastebin.com/Xn27tdiT
- 8.матрица со скалар : https://pastebin.com/NkBjpeWV
- 18.Riste resenija: https://github.com/finki-mk/OS/tree/master/synchronization/src/main/java/mk/ukim/finki/os/synchronization/exam17
- Izmini:
- package java.io;
- public class Izmini {
- public static void main (String [] args) throws IOException
- {
- String izvor = new String("izvor");
- String dest = new String("dest");
- izmini(izvor, dest);
- }
- private static void izmini(String izvor, String dest) throws IOException {
- // TODO Auto-generated method stub
- File inDir = new File(izvor);
- File outDir= new File(dest);
- if(!inDir.exists())
- {
- System.out.println("Ne postoi vlezen direktoriium");
- }
- if(!outDir.exists())
- {
- outDir.mkdirs();
- }
- else
- {
- rekurzivno(outDir);
- }
- rekurzivnoIn(inDir,outDir);
- }
- private static void rekurzivnoIn(File inDir,File outDir) throws IOException {
- // TODO Auto-generated method stub
- File [] list = inDir.listFiles();
- for(int i =0;i<list.length;i++)
- {
- if(list[i].isFile())
- {
- if(list[i].getName().endsWith(".dat") && (list[i].length()>5000))
- {
- File nov = new File(outDir.getAbsolutePath()+"\\dat\\",list[i].getName());
- list[i].renameTo(nov);
- }
- if(list[i].getName().endsWith(".txt"))
- {
- FileWriter raf = null;
- try {
- raf = new FileWriter(new File(outDir.getAbsolutePath()+"\\files.csv"), true);
- raf.write(list[i].getName()+","+list[i].getAbsolutePath()+" "+list[i].length(), 0, 0);
- }
- catch (Exception e) {
- e.printStackTrace();
- }finally {
- if(raf != null){
- raf.flush();
- raf.close();
- }
- }
- }
- }
- if(list[i].isDirectory())
- {
- rekurzivno(list[i]);
- }
- }
- }
- private static void rekurzivno(File outDir) {
- // TODO Auto-generated method stub
- File [] lista = outDir.listFiles();
- for(int i =0;i<lista.length;i++)
- {
- if(lista[i].isFile())
- lista[i].delete();
- if(lista[i].isDirectory())
- {
- rekurzivno(lista[i]);
- lista[i].delete();
- }
- }
- }
- }
- FindDocuments:
- package java.io;
- /*
- * Имплементирајте го методот findDocuments(String in, String out) кој ќе го изминува рекурзивно
- * директориумот претставен преку “in”. Доколку наиде на .docx или .xlsx кој е поголем од 5 мегабајти,
- * тогаш треба да го премести во “out”\dokumenti, а доколку наиде на .docx или .xlsx кој е помал или еднаков на 5 мегабајти,
- * тогаш треба да додаде линија на почетокот на “out”\brisenje.txt
- * од типот “<filename>, <size_in_kilobytes>”. Внимавајте дека може да има многу вакви документи во “in”
- * */
- public class Januari17 {
- public static void main(String[] args) throws IOException {
- String izvor = "C:\\Users\\Lenovo\\Desktop\\Tamara\\4-четврт семестар\\Оперативни\\Вежби_Испит\\Ispitni";
- String destinacija = "C:\\Users\\Lenovo\\Desktop\\Tamara\\4-четврт семестар\\Оперативни\\Вежби_Испит\\Ispitni";
- File in = new File(izvor);
- File out = new File(destinacija);
- findDocuments(in, out);
- }
- private static void findDocuments(File in, File out) throws IOException {
- File[] lista = in.listFiles();
- for (File f : lista) {
- if (f.isFile()) {
- if ((f.getName().endsWith(".doxc") || f.getName().endsWith(".xlxs")))
- if (f.length() > 5000) {
- FileInputStream fis = null;
- FileOutputStream fos = null;
- try {
- fis = new FileInputStream(f.getPath());
- fos = new FileOutputStream(out.getPath()+"\\dokumenti\\"+f.getName());
- byte[] buffer = new byte[1024];
- int noOfBytes = 0;
- System.out.println("Copying file using streams");
- // read bytes from source file and write to destination file
- while ((noOfBytes = fis.read(buffer)) != -1) {
- fos.write(buffer, 0, noOfBytes);
- }
- } finally {
- if (fis != null)
- fis.close();
- if (fos != null)
- fos.close();
- }
- } else if (f.length() <= 5000) {
- FileWriter raf = null;
- try {
- raf = new FileWriter(new File(out.getAbsolutePath()+"\\brisenje.txt"), true);
- raf.write(f.getName()+" "+f.length(), 0, 0);
- }
- catch (Exception e) {
- e.printStackTrace();
- }finally {
- if(raf != null){
- raf.flush();
- raf.close();
- }
- }
- }
- }
- else if (f.isDirectory()) {
- findDocuments(f, out);
- }
- }
- }
- }
- BigFiles:
- package java.io;
- public class BigFiles {
- public static void main(String [] args) throws IOException
- {
- String from = new String("New");
- String to = new String("To");
- bigFiles(from,to);
- }
- private static void bigFiles(String in, String out) throws IOException {
- File fin = new File(in);
- File[] files = fin.listFiles();
- for(File f : files) {
- if(f.isDirectory()){
- bigFiles(f.getAbsolutePath(), out);
- }else {
- if(f.getName().endsWith(".dat") && f.length() > 100){
- BufferedWriter raf = null;
- try {
- //System.out.println("Found file");
- BufferedWriter writer = new BufferedWriter(new FileWriter(out+"\\files.txt"));
- String parent = f.getParent();
- long size = f.length();
- boolean writeable = f.canWrite();
- //!!Ne znam zoso ne saka
- //writer.write(parent+" "+size+" "+writeable);
- //System.out.println("successfuly wrote name of file");
- }catch (Exception e) {
- e.printStackTrace();
- }finally {
- if(raf != null){
- raf.flush();
- raf.close();
- }
- }
- }
- }
- }
- }
- }
- 15.PrvKol
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FilenameFilter;
- import java.io.IOException;
- import java.io.RandomAccessFile;
- import java.util.List;
- import mk.ukim.finki.os.filemanagement.exam.IExamIO;
- import mk.ukim.finki.os.filemanagement.exam.TestExam;
- public class ExamIO implements IExamIO {
- public void moveWritableTxtFiles(String from, String to){
- File f = new File(from);
- File t = new File(to);
- if(!f.exists()){
- System.out.println("Ne postoi");
- return;
- }
- if(!t.exists()){
- t.mkdirs();
- }
- File[] files = f.listFiles();
- for (File file : files) {
- if(file.getName().endsWith(".txt") && file.canWrite()){
- File newFile = new File(t, file.getName());
- file.renameTo(newFile);
- }
- }
- }
- public void deserializeData(String source, List<byte[]> data, int elementLength) throws IOException {
- FileInputStream fis = null;
- try {
- fis = new FileInputStream(source);
- byte[] element = new byte[(int) elementLength];
- int b;
- int read = 0;
- while((b = fis.read()) != -1){
- element[read] = (byte) b;
- read++;
- if(read == elementLength){
- data.add(element);
- read = 0;
- element = new byte[(int) elementLength];
- }
- }
- } catch (Exception e) {
- // TODO: handle exception
- } finally {
- if (fis != null) {
- fis.close();
- }
- }
- }
- public void invertLargeFile(String source, String destination) throws IOException{
- RandomAccessFile rr = null;
- RandomAccessFile rw = null;
- try {
- rr = new RandomAccessFile(source, "r");
- rw = new RandomAccessFile(source, "rw");
- long pos = rr.length()-2;
- while(pos >= 0){
- char c = rr.readChar();
- rw.seek(pos);
- rw.write(c);
- pos-=2;
- }
- } catch (Exception e) {
- // TODO: handle exception
- } finally {
- if (rr != null){
- rr.close();
- }
- }
- }
- public static void main(String[] args) throws IOException {
- ExamIO examIO = new ExamIO();
- TestExam.testMove(examIO);
- TestExam.testDeserialize(examIO);
- TestExam.testInvertFile(examIO);
- }
- }
- ReadWrite
- package java.io;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- import java.util.concurrent.Semaphore;
- public class Reader extends Thread{
- public static Semaphore event = new Semaphore(1);
- public static Semaphore Notify = new Semaphore(1);
- public static Random random = new Random();
- public static void main(String[] args) throws InterruptedException {
- // TODO: kreirajte Reader i startuvajte go negovoto pozadinsko izvrsuvanje
- Reader read = new Reader();
- read.start();
- for (int i = 0; i < 100; i++) {
- Writer writer = new Writer();
- //TODO: startuvajte go writer-ot
- writer.start();
- }
- // TODO: Cekajte 10000ms za Reader-ot da zavrsi
- read.join(10000);
- // TODO: ispisete go statusot od izvrsuvanjeto
- if(read.isAlive())
- {
- read.interrupt();
- System.out.println("Terminated reading");
- }
- else
- System.out.println("Finished reading");
- }
- /**
- * Ne smee da bide izvrsuva paralelno so write() metodot
- */
- public static synchronized void read() {
- System.out.println("reading");
- }
- public void run() {
- int pendingReading=100;
- while (pendingReading>0) {
- pendingReading--;
- // TODO: read() metodot ne smee da se izvrsuva paralelno so write() od Writer klasata
- try {
- Notify.acquire();
- event.acquire();
- read();
- event.release();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- System.out.println("Done reading!");
- }
- }
- class Writer extends Thread{
- public Integer duration;
- public Writer() throws InterruptedException {
- this.duration = Reader.random.nextInt(1000);
- }
- /**
- * Ne smee da bide povikan paralelno
- * @throws InterruptedException
- */
- public static synchronized void write() throws InterruptedException {
- Reader.event.acquire();
- System.out.println("writting");
- Reader.Notify.release();
- Reader.event.release();
- }
- public void run() {
- try {
- Thread.sleep(this.duration);
- write();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- 5.Juni 2017 (moja)
- if [ $# != 3 ]
- then
- echo " USAGE: $0 Source Destination "
- exit 1
- fi
- if [ ! -d $2 ]
- then
- mkdir $2
- fi
- for dat in ls $1
- do
- files=`ls -l $1 | grep '^-' | cat $dat | grep 'for' | awk '{print $0;}'`
- done
- for i in $files
- do
- date=`ls -l $i| grep '^-' | awk '{ print $8;}'`
- for j in ls $2
- do
- if [ $date == `ls -l $j | awk '{ print $8;}'`]
- then
- pat=`pwd $i`
- celpat=`pat$\$date`
- cat celpat >> $3
- fi
- else
- cp $1\$file $2\$file
- fi
- done
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement