ПОС/Лаб 2 2022 — разлика између измена
(Нова страница: {{tocright}} Лаб 2 се појављује у '''трећем''' термину вежби. {{решења}} == Група 1 == === Задатак 1 === ==== По…) |
м (→Решење: Ispravka) |
||
Ред 47: | Ред 47: | ||
<syntaxhighlight lang="bash" class="spoiler" data-solution="plain"> | <syntaxhighlight lang="bash" class="spoiler" data-solution="plain"> | ||
#primer | #primer | ||
echo "aa123 A1a2 1a2a a1a2a3 fff" | sed -E 's/.*\b(([a-z][0-9])+)\b.*/\1/' | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Тренутна верзија на датум 13. април 2023. у 16:54
Лаб 2 се појављује у трећем термину вежби.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
Група 1
Задатак 1
Поставка
(3п) Napisati regularni izraz koji pronalazi bilo koji broj. Npr. u tekstu „a -123b a234“, treba da se upare „123“ i „234“.
Решење
echo "a-123b a234" | sed -n "/[[:digit:]]/p"
Задатак 2
Поставка
(5п) Napisati komande koje menjaju vlasničku grupu svemu što počinje sa rečju first u direktorijumu čija se putanja već nalazi u promenljivoj dir. Nova vlasnička grupa treba da bude ista kao i ona koju ima sam direktorijum.
Решење
chgrp `stat $dir -c "%G"` -R $dir/first*
Задатак 3
Поставка
(6п) Napisati skriptu koja šalje signal 9 svim procesima koje je pokrenuo korisnik čiji je korisničko ime zapisano u promenljivoj KILL_USER.
Решење
#!/bin/bash
IFS=$'\n'
for i in $(ps axu | grep "^$KILL_USER" | tr -s " " " ")
do
kill -9 $(echo $i | cut -d' ' -f2)
done
Група 2
Задатак 1
Поставка
(3п) Napisati regularni izraz koji uparuje reč u tekstu koja se sastoji od naizmeničnog pojavljivanja malog slova i cifre. Npr. u tekstu „aaa123 A1a2 1a2a a1a2a3“, treba da se upari samo „a1a3a3“.
Решење
#primer
echo "aa123 A1a2 1a2a a1a2a3 fff" | sed -E 's/.*\b(([a-z][0-9])+)\b.*/\1/'
Задатак 2
Поставка
(5п) Napisati komande koje svim fajlovima, koji su tipa ASCII text, u podstablu direktorijuma, dodaju pravo upisa za vlasnika i vlasničku grupu. Putanja do direktorijuma je već data u promenljivoj dir.
Решење
#!/bin/bash
dir=. #primer
for j in $(find $dir -name *.txt)
do
chmod u+w $j
chmod g+w $j
done
Задатак 3
Поставка
(6п) Napisati skriptu koja svim procesima koji su pokrenuti u tekućoj konzoli posalje signal 9 (komanda jobs ima opciju -l za ispisivanje pid-a).
Решење
#!/bin/bash
for j in $( jobs -l | tr -s " " " " | cut -d" " -f2 )
do
echo $j
kill -9 $j
done