Byla vydána verze 11.8 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností i s náhledy v příspěvku na blogu. Zdůraznit lze například SAST (Static Application Security Testing) testování JavaScriptu.
Neziskové technologické konsorcium Linux Foundation oznámilo, že nejnovějším oficiálním projektem konsorcia se stává ELISA (Enabling Linux In Safety Applications). Clem projektu je usnadnit společnostem vývoj a certifikaci kritických aplikací a systémů postavených na Linuxu, tj. aplikací a systémů, jejichž selhání může vést ke ztrátě lidských životů, k významným škodám na majetku nebo škodám na životním prostředí.
Vyšlo piate číslo Magazínu KPI — webového časopisu Katedry počítačov a informatiky Technickej univerzity v Košiciach. V čísle sú články o vizualizácii dát v jazyku Python, nástroji Docker, a použití protokolu MQTT.
Po dvou a půl měsících vývoje od vydání verze 5.0 byla vydána nová verze 5.1 svobodného open source redakčního systému WordPress. Kódové označením Betty bylo vybráno na počest americké jazzové zpěvačky Betty Carter.
V Linuxu byla nalezena bezpečnostní chyba CVE-2019-8912. Jedná se o vážnou (CVSS v3.0: 9.8) bezpečnostní chybu typu CWE-416: Use After Free v crypto/af_alg.c. Chyba byla nalezena pomocí detektoru chyb při práci s pamětí KASAN (Kernel Address Sanitizer).
Mozilla.cz informuje, že další vydání SeaMonkey se zdrží. Infrastruktura projektu SeaMonkey prochází mnoha změnami. Důvodem je požadavek na nezávislost na infrastruktuře Firefoxu do konce roku, protože jeho vývoj nebude SeaMonkey následovat ve stejném tempu a rozdíly jsou moc veliké. Bohužel se při těchto přesunech nepodařilo udržet vše ve funkčním stavu a tak není možné sestavovat a vydávat nové verze SeaMonkey.
V Drupalu byla nalezena vysoce kritická zranitelnost PSA-2019-02-19. Podrobnosti a opravy 8.5.x a 8.6.x budou zveřejněny dnes mezi 19:00 a 23:00.
Mozilla.cz informuje o stavu češtiny v projektu Common Voice. Projekt Common Voice sbírá hlasová data, na základě kterých bude možné trénovat modely a software pro rozpoznávání řeči. Aktuálně je nutné rozšířit počet vět v datové sadě a alespoň 5 tisíc vět musí být ručně ověřených několika lidmi.
Byla vydána nová vývojová verze datového formátu a souvisejících nástrojů Relational pipes. Hlavní novinkou verze v0.10 je nástroj relpipe-tr-guile
, který díky GNU Guile umožňuje filtrovat a transformovat relační data pomocí výrazů jazyka Scheme.
CSIRT.CZ upozorňuje na kritickou zranitelnost ve WordPressu umožňující vzdálené spuštění libovolného kódu. Prakticky se jedná o kombinací dvou různých zranitelností (Directory Traversal a Local File Inclusion), pro jejichž úspěšné zneužití musí útočník získat v rámci instance WordPressu alespoň oprávnění autora.
Diskuse byla administrátory uzamčena.
$ sed -n '1p' < ./soubor
První řádek
$ sed -n '$p' < ./soubor
Poslední řádek
$ sed -n '1!p' < ./soubor
Druhý řádek
Třetí řádek
Poslední řádek
Chce ještě někdo zodpovědět nějaký konkrétní příklad?
#!/bin/bash mv $1 $1.old sed 's/ahoj/nazdar/' $1.old > $1 #rm $1.old exit 0 $ find -type f | xargs -i ../skript.sh {}
$ cat soubor nazdarahojnazdarahojnazdarahojnazdar $ sed 's/ahoj/\n/g' < ./soubor nazdar nazdar nazdar nazdar $ sed 's/\(ahoj\)/\n\1\n/g' < ./soubor nazdar ahoj nazdar ahoj nazdar ahoj nazdar
$ cat soubor Řádek 1 Error 2 Řádek 3 Error 4 $ egrep -v '^Error.+$' < ./soubor Řádek 1 Řádek 3
Můžeš např. všechno kromě čísel a mezer smazat.
$ echo "1234 ahoj 4321" | sed -n 's/[^0-9 ]//gp' 1234 4321
Ale podle mě bude lepší zkontrolovat všechny argumenty a v případě, že uživatel v některém z nich zadá cokoliv jiného než číslo, zakřičí se na něj a program se ukončí.
for argument in $@; do if [ $(echo $argument | grep '[^0-9]' | wc -l) -ne 0 ]; then echo "Argument '$argument' není číslo!!!" exit 1 fi done
Rádi Ti pomůžeme, ale specifikuj prosím Tvůj problém jednoznačně, nejlepší bude když uvedeš konkrétní příklad, co máš a co z toho chceš dostat.
$ cat pocet_tagu.sh
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 file.xml"
exit
fi
echo -e "\n$1:"
tags_all=$(cat $1 |sed -n 's/[^>]*\(<[^ >]\+[ >]\)/\1\n/gp' |grep "^<[^\/]" |sort)
tags_uniq=$(echo $tags_all |sed 'y/ /\n/' |uniq)
for tag in $tags_uniq; do
count=$(echo $tags_all |sed 'y/ /\n/' |grep $tag |wc -l)
printf " %-20s %10i\n" $tag $count
done
$ find -type f -regex ".*\.xml" |xargs -i ./pocet_tagu.sh {}
./soubor02.xml:
<accelerator 2
<!DOCTYPE 1
<glade-interface> 1
<child> 236
<child 250
<packing> 206
<placeholder/> 2
<property 2521
<signal 36
<widget 258
<?xml 1
./soubor01.xml:
<kocka> 2
<pes> 2
<xml> 1
<zvire> 2
IFS="<"; set -- $(cat "$1"); for tag in "$@" ; do IFS=" >"; set -- $tag; echo "$1"; done | sort | uniq -c
IFS="<"; set -- $(cat "$1"); for tag in "$@" ; do echo "${tag%%[ >]*}"; done | sort | uniq -c
$ echo ~ /home/jozef $ echo a~ a~ $ echo a\ ~ a ~
$ ./configure --prefix=~/myprogs configure: error: expected an absolute directory name for --prefix: ~/myprogs $ ./configure --prefix=$HOME/myprogs checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes ... atd. (takhle mi to už funguje) ...P.S. Takhle kompiluju software pokud nechci spouštět
make install
jako root. Prostě jsem si do .bash_profile
přidal příkaz který přidal ~/myprogs/bin
do PATH
a můžu takhle zkompilovaný a nainstalovaný programy normálně spouštět jako kdyby byli kompilované instalované "normálním způsobem". Zatím mi všechny takhle kompilované a instalované programy fungovali bez problémů (mezi nimi jsou i takové fajnové vychytávky jako třeba mplayer
). Dělám to tak, protože jsem poněkud paranoidní co se týče poskytování ROOT
oprávnění neznámým skriptům a programům (čti: normální sysadmin).
Tiskni
Sdílej: