[SKJ] cvičení 1,2

Odpovědět
Uživatelský avatar
Destroyer
VCKLAN TEAM
Příspěvky: 812
Registrován: čtv 13. srp 2009 13:50:15
Bydliště: Praha 12
Kontaktovat uživatele:

cvičení 1,2

Příspěvek od Destroyer » stř 18. úno 2015 2:58:45

Uloha 1

Kód: Vybrat vše

grep status log | tail -1 | awk 'BEGIN{FS="[|=\\-\\[\\]]"}{print "DATE\t\t"$2"\nTIME\t\t"$3"\nSEMESTR\t\t"$5"\nAKTSEM\t\t"$7"\nSTAVZAP\t\t"$9"\nCAC_STATUS\t"$11"\nCAD_STATUS\t"$13}'
Uloha 2

Kód: Vybrat vše

wget https://edux.fit.cvut.cz/courses/ -O courseslist
mkdir courses; cd courses
grep folder  ../courseslist | grep -o '[BMP][[:alpha:]]\{1,2\}-.*"' | tr -d "/\"" | xargs mkdir
for folder in */; do echo "===== $folder =====" > "$folder/index"; done
find * -type f -exec sed -i 's/\///' {} \;
echo "B152" > info
Uloha 3

Kód: Vybrat vše

cd ..
mkdir -p archive
cd archive
datum=`date +%Y-%m-%d_%H-%M-%S`
mkdir B152@"$datum"
cd B152@"$datum"
cp -R ../../courses/* .
find . -name "index" -type f -exec sh -c 'echo "zaloha z `date +%Y-%m-%d`" >> {}' \; # toto melo byt pridano mezi === ===

cd ..
grep folder  ../courseslist | grep -o '[BMP][[:alpha:]]\{1,2\}-.*"' | tr -d "/\"" | xargs mkdir
Uloha 4

Kód: Vybrat vše

find . -type f -printf "%T@ %p\n" | sort -n | cut -d" " -f2-

-------

Kód: Vybrat vše

#Zaloha testovacich veci
grep status log | tail -1 | awk 'BEGIN{FS="[|=\-\[\]]"}{print "DATE\t"$2"\nTIME\t"$3"\nSEMESTR\t"$5"\nAKTSEM\t"$7"\nSTAVZAP\t"$9"\nCAC_STATUS\t"$11"\nCAD_STATUS\t"$13}'
#updated
grep status log | tail -1 | awk 'BEGIN{FS="[|=\\-\\[\\]]"}{print "DATE\t"$2"\nTIME\t"$3"\nSEMESTR\t"$5"\nAKTSEM\t"$7"\nSTAVZAP\t"$9"\nCAC_STATUS\t"$11"\nCAD_STATUS\t"$13}'

#verze 2 WIP
grep status log | tail -1 | tr -d "[" | tr "|" "\n" | tr ">" "\n" | tr "=" "\t" | sed "s/].*$//" | sed "s/-/\\nTIME\\t/" | awk 'BEGIN{print "DATE\t"}{print $0}'


mkdir courses; cd courses
grep folder ../courseslist.html | grep -o '[BMP][[:alpha:]]\{1,2\}-.*"' | tr -d "/\"" | xargs mkdir

for folder in *; do echo "$folder" > "$folder/index"; done
 
 
rok=`date +%y`
mesic=`date +%-m`
if [ $mesic -eq 1 ] || [ $mesic -gt 9 ]; then pulka=1; else pulka=2; fi
if [ $mesic -lt 10 ]; then rok=$(( $rok - 1 )); fi
semestr=$(( $rok * 10 + $pulka ))
znacka=`echo "B$semestr" | tee info` 

test -d archive
if [ "$?" -eq 1 ]; then mkdir archive; fi

cd archive;
timestamp=`date +%Y-%m-%d_%H-%M-%S`;
mkdir ${znacka}@${timestamp};

slozka=`echo ${znacka}@${timestamp}`; mkdir $slozka; cd $slozka
cp -R ../../. . 2>/dev/null

for folder in *; do echo "zaloha z `date +%Y-%m-%d`" >> $folder/index; done


ls -rt $(find . -name start.txt) 2>/dev/null

find . name start.txt -exec ls -rtl {} +  # + zavola ls jen jednou, zajisti razeni
ls -tr */start.txt

Semestrální práce - efekt

Animace bude začínat přímkou, pro kterou bude platit y = 0. Potom se přidá první náhodně vybraný bod, který změní přímku na čáru. Postupně budou takto přibývat další body, dokud se nezobrazí všechny.
Rychlost bude ovlivňovat dobu mezi nanesením jednotlivých bodů na graf.
Efekty:
nastavení resp. aktivace fade in / fade out efektu (žádný, jeden z nich nebo oba)
vzhled bodu - žádný, hvězdička, tečka apod.

Ukázka: http://youtu.be/cR2f5puNXWE
----
prepinace maji prednost pred conf. s.

ignorovat
-delka animace / fps
nelze
-nefunguje sit
-neexistuji soubory
Přílohy
cv1.zip
(5 KiB) Staženo 562 x
SKJ.zip
(66.82 KiB) Staženo 557 x

Uživatelský avatar
Destroyer
VCKLAN TEAM
Příspěvky: 812
Registrován: čtv 13. srp 2009 13:50:15
Bydliště: Praha 12
Kontaktovat uživatele:

Cviceni 2

Příspěvek od Destroyer » stř 04. bře 2015 14:41:13

Kód: Vybrat vše

mkdir student{01..15}
touch student{01..15}/start.txt
ls -rt student*/start.txt
list=`ls -rt student*/start.txt`
echo "$list"
head -n 1 <<<"$list"
sed 1p <<<"$list"
sed -n 1p <<<"$list"
sed 1q <<<"$list"

#postup pres awk
awk -F"\n" "$1" <<<$list"
awk -F\n "$1" 1  <<<$list"
awk -F\n 1 "$1" <<<$list"
awk -F'\n' "$1" <<<$list"
awk -F'\n' "$1" <<<"$list"
awk -F'\n' 1 "$1" <<<"$list"
awk -F'\n' '$1' <<<"$list"
awk -F$'\n' '$1' <<<"$list"
awk -F$'\n' '{print $1}' <<<"$list"
awk -F/ '{print $1}' <<<"$list"
awk -F/ 'BEGIN {RS=""} {print $1}' <<<"$list"


awk -F/ 'BEGIN {RS=""} {print $1}' <<<"$list"
awk '{print $NR}' <<<"$list"
awk '{print $NR}' <<<"$list"
awk '{printf $NR}' <<<"$list"
awk 'NR==1' <<<"$list"
awk NR==1 <<<"$list"

find student* -name start.txt -newer $(sed 1q <<<"$list")

echo $list | cut -d' ' -f1
echo $list
echo "$list"
touch student10/start.txt 
find student* -name start.txt - newer $(sed 1q <<<"$list")
find student* -name start.txt -newer $(sed 1q <<<"$list")
find student* -name start.txt -printf '%T@ %p\n'

-----
for user in $(getent passwd | cut -d: -f1); do [ -d homes/$user ] || mkdir homes/$user; done
for dir in *; do [ -d $dir ] && [[ "$dir" ~= ^[^m] ]] && mv "$dir "$dir.old; done
# vypis uzivatelu na jeden radek oddeleno carkou
getent passwd | cut -d: -f1 | paste -d, -s 
# verze 2
U=$(getent passwd | cut -d: -f1 | tr "\n" , )
declare -p U
sed 's/,$//' <<<"$U"
# verze 3
echo "$(U%,)
# verze 4
rev <<< "$U" | cut -c2- | rev
# v5
eval mkdir homes/{$(getent passwd | cut -d: -f1 | paste -d, -s)}

#moje verze
echo -n $(getent passwd | cut -d: -f1) | tr " " ","
#staci
echo $(getent passwd | cut -d: -f1) | tr " " ","
----
echo "${U:3:5}"
echo "${U:0:$((${#U}-1))}"
-----
a=b=3
declare -p a


---- SED WutFace
getent passwd | cut -d: -f1 | sed 'N;s/\n/:/'


find | sed "s/^/wc -c <<< '/;s/$/'/" | bash

#pozor na nazev souboru napr.
';date #'

Uživatelský avatar
Destroyer
VCKLAN TEAM
Příspěvky: 812
Registrován: čtv 13. srp 2009 13:50:15
Bydliště: Praha 12
Kontaktovat uživatele:

Re: cvičení 1,2

Příspěvek od Destroyer » úte 01. bře 2016 13:31:52

Kód: Vybrat vše

#!/bin/bash
while true; do
( cmdpid=$BASHPID; (sleep 5; pkill -TERM -P $cmdpid) & exec bash -c "wget c.xkcd.com/random/comic/ -O - | grep \"Image URL\" | cut -d: -f2- | xargs wget -O - | display" )
done


#while true; do
#( cmdpid=$BASHPID; (sleep 5; kill $cmdpid) & exec wget c.xkcd.com/random/comic/ -O - | grep "Image URL" | cut -d: -f2- | xargs wget -O - | display; ) 
#done

Kód: Vybrat vše

#cv3
1. vyhodit komentare 
hodnota se nepouziva (2 v textu)
otestovat napr. slozky
spatna promenna(nemel jsi na mysli??)
promenna co se nebude pouzivat

----
read a b c
1 2 3
# read dela trim
declare -p a b c
#pokud nechci trimovat
read
declare -p REPLY

while read user pass uid gid name home shell; do declare -p user pass uid gid name home ; echo ============ ; done   < /etc/passwd


declare -p BASH_REMATCH
enter v nazvu souboru




eval echo "\"\$$a"\""
nebo
echo "${!a}



 for file in "${array[@]}"; do [[ "$file" =~ "^${item}_[0-9]+$" ]]; echo "$file"; done

You're pro or you're a noob. That's life

Odpovědět