Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - exkalibr

Stran: 1 2 3 [4] 5 6 ... 25
46
zeptej se ho proc to lomitko v tagu escapuje 2x ;-)

Tak vygeneroval chyby kod a snažil jsem se to po něm opravit. To byla moje úprava.

47
No tak to nechápu! Před tím to chatGPT psal s jedním zpětným lomítkem a dostával jsem chyby. Tak jsem to opravil na dvě zpětná lomítka podle té hlášky co jsem dostával. A pak vznikla nová chyba. Pak jsem tedy odeslal dotaz sem. Zase jsem tedy smazal to lomítko a teď to jede.

48
Tato syntaxe pro awk nefunguje (doporučoval chatGPT):
Kód: [Vybrat]
menu=$(awk '/<div id="menu-slider">/,/<\\/div>/' temp.html | awk '/<nav id="menu"/,/<\\/nav>/')
echo "Menu:"
echo "$menu"

Párový tag uvnitř obsahuje kod na více řádků, který chci získat. No nedaří se.

Píše podobnou hlášku:
Kód: [Vybrat]
$./extract-webnode-menu-structured.sh
awk: cmd. line:1: /<div id="menu-slider">/,/<\\/div>/
awk: cmd. line:1:                                    ^ unexpected newline or end of string
awk: cmd. line:1: /<nav id="menu"/,/<\\/nav>/
awk: cmd. line:1:                            ^ unexpected newline or end of st

49
Jak nakonfigurovat barvu textu v terminálu např. barva článku byla bílá? A barva odkazů aby byla velmi světle zelená (skoro bílá)? Zkrátka abych dostal vysoký kontrast?

A ještě mám dotaz jestli se dá z lynxu vytáhnout seznam odkazů v menu na stránce kterou si prohlížím. Je to stránka na webnode.cz kde mají menu stránek. V normální prohlížečích menu není vidět, je rozsáhlé a dá se zkopírovat ze zdrojového kodu, ale napadlo mě, že by mohlo být dobré mít seznam odkazů, že bych si mohl postahovat a zazálohovat svoje články na webnode.cz Ale nevím právě jak získat ten seznam článků. No řeknu vám to tak, mám stránku kde je velmi mnoho odkazů a je to nepřehledné menu. Takže já třeba nemohu procházet normálně a najít i staré články, které bych už vymazal a chtěl bych to nějak projít a překontrolovat. A přes zdroják ve firefoxu ctrl+U je to tam jen kod, nepřehledné.

50
Vývoj / Re:Bash script na monitorování aktivity CPU
« kdy: 20. 07. 2023, 12:34:34 »
Nikdo z komunity nepřišel na to co přesně tak dlouho dělá. Paměť je volná a cache jsem vypnul, jede to rychleji bez diskové cache. Pokilloval jsem všechny možné programy a procesy co jsem nepotřeboval. Po té půlhodině to jede docela dobře na 3.5 GB RAM. Mám tu smůlu že jsem zrovna narazil na tento limit. O pár stovek více, bylo by to v pohodě. Takhle zvládám jen YT, FB, ChatGPT, xed a subl. (Volba je mezi FB a YT obě současně spustit nemohu).

51
Vývoj / Bash script na monitorování aktivity CPU
« kdy: 20. 07. 2023, 10:24:32 »
S pomocí chatGPT se mi povedlo vytvořit tuhle utilitku pro .bashrc a .profile
Vypisuje aktuální stav v procentech. Nepovedlo se mi to udělat na setiny, protože to na Mintu 20 hlásilo chybu (už si nepamatuji jakou, myslím že to byla chyba tokenu). Utilitku využívám jen prvních 25-30 minut protože mám linux spuštěný jako VM pod Windowx XP a začít pracovat s prohlížečem mohu až uplynutí času. Takže jak se objeví zelená barva textu s aktivitou procesoru v procentech, tak vím, že mohu začít pracovat. Do budoucna uvažuji že bych přidal ještě údaj kolik zbývá volné paměti a automaticky by se mohl spustit úklid (uvolnění paměti) když kriticky dochází. Jinak to dělám ručně ten úklid ale je lepší to spustit nejpozději když je 250M volné.

Kód: [Vybrat]
# Funkce barevně vypíše aktivitu
declare -f mpstat_activity
mpstat_activity() {
  local idle=$(mpstat | awk 'NF >= 1 {idle += $(NF)} END {print idle}')
  local activity=$((100 - idle))

  if ((activity < 10)); then
    echo -e "\e[32m${activity}%\e[0m"  # Zelená 32
  elif ((activity < 12)); then
    echo -e "\e[33m${activity}%\e[0m"  # Žlutá; je špinavě žlutá
  elif ((activity < 14)); then
    echo -e "\e[33m${activity}%\e[0m"  # Oranžová 33
  else
    echo -e "\e[31m${activity}%\e[0m"  # Červená 31
  fi
}

PS1='$(mpstat_activity) $ '

# Spustit po startu na pozadí
declare -f mp
mp() {
  local duration=1800  # Délka trvání v sekundách (30 minut)
  local interval1=240  # Interval prvních 9 minut (4 minuty)
  local interval2=180  # Interval dalších 12 minut (3 minuty)
  local interval3=90   # Interval po uplynutí toho času (1.5 minut)
  local start_time=$(date +%s)

  mpstat_activity  # První volání

  while true; do
    local current_time=$(date +%s)
    local elapsed_time=$((current_time - start_time))

    if ((elapsed_time <= interval1)); then
      sleep "$interval1"
    elif ((elapsed_time <= interval1 + interval2)); then
      sleep "$interval2"
    elif ((elapsed_time <= duration)); then
      sleep "$interval3"
    else
      break  # Trvání skončilo, ukončení smyčky
    fi

    mpstat_activity
  done
}

# Funkce pro ukončení
declare -f mp_exit
mp_exit() {
  unset -f mp  # Odstranění funkce `mp` ze zásobníku
  echo "Monitoring procesoru ukončen."
}

# Přidání příkazů mp a mp_exit do .bashrc
alias mp='mp'
alias mp_exit='mp_exit'

mp &

52
Nedaří se mi v sedu nastavit rozsah pro určité znaky. Zkouším něco takového např. [\uFB50-\uFFFF] Jde to vůbec nebo jaká je alternativa, když to chci zapsat, nejlépe takto v tomto kodovaní?

53
Vývoj / Re:Mapování znaků v bashi
« kdy: 04. 07. 2023, 23:57:53 »
možná by to šlo v tom tr. Ale už to dělám v regexech a sedu. Počítám s tím, že když to napíšu v sedu, mohu v budoucnu porovnat výkon abych zjistil co je lepší jestli sed nebo regex. Ale co jsem potřeboval v podstatě už mám.

Teď řeším ještě úplně jiný problém, ten se netýká programování, ale zobrazení kódu. Otevírám js soubor na internetu a nezobrazuje se mi tam utf-8 kodování, ačkoliv to je psané v utf-8. Kvůli tomu, když chci zkopírovat znaky, nezobrazují se správně. Firefox to asi vidí jako Windows-1250. Tedy když to zkopíruju do subl nebo do xedu, mám tam nesprávné znaky. A nevím jak to dát zpět. Druhá možnost co mohu zkusit je zkopírovat to v PSPadu, kde se to zobrazuje správně a vložit to do linuxu ve správném kódování.  Ale tohle neřeší můj problém do budoucna. Prostě nevím jak v FF zobrazit ty správné znaky a v xedu a sublu mi to taky nejde.

54
Vývoj / Re:Mapování znaků v bashi
« kdy: 03. 07. 2023, 16:33:24 »
Omlouvám se ale ten AI nedokáže spolehlivě vygenerovat ani ten kod pro iconv. A já nechápu jak to použít. Furt to nejde rozjet. Nevím jestli jsem správně pochopil ten mapovací soubor. Z toho co jsem se od AI dozvěděl je že při použití přepínače -t se má automaticky používat jako oddělovač dvojtečka ":" ale to nevím jestli si nevymýšlí. V man jsem to nenašel.

AI jsem poslal dokumentaci manpages a z toho vygeneroval syntaxy:

Kód: [Vybrat]
iconv -f <původní-kódování> -t UTF-8 <vstupní-soubor> -o <výstupní-soubor>

Nicméně mě to nepřevádí ten původní text na jiné znaky. Některé znaky jsem chtěl odstranit, ale AI řekl, že to iconv neumí. Tak jsem je převedl na takovou "tečku", kterou bych pak mohl odstranit. Ale když se má zobrazit výsledný zkušební text, což je jen pár slov, tak se něco vypíše na mnoho řádků.. Neočekávané chování a nejsou tam ty základní znaky, které měly zůstat

Je toto takto správně?
Kód: [Vybrat]
output=$(echo "$input" | iconv -f UTF-8 -t UTF-8//TRANSLIT -c "$map_file")
echo "$output"

55
Vývoj / Re:Mapování znaků v bashi
« kdy: 03. 07. 2023, 11:52:06 »
Možná to nebylo tak, že by to nešlo zapsat ty sekvence do asoc. pole, ale že tato funkce to hlásí tu chybu. A AI včera hlásilo, že to v tom nejde udělat, protože jsem mu položil otázku jestli v tom počítá s vícebajtovými znaky v unicode a on řekl, že ne, že jede po jednom bytu.

Kód: [Vybrat]
  local input=$1
  local output=""
  local length=${#input}

  for (( i = 0; i < length; i++ )); do
    local char=${input:i:1}
    local replacement=${replacements[$char]}
    output+="${replacement:-$char}"
  done

Na ten iconv bych mohl mrknout

56
Vývoj / Re:Mapování znaků v bashi
« kdy: 03. 07. 2023, 00:47:08 »
díky, ty \x sekvence fungují ale nemohu chatGPT přimět aby to správně převedl. Nedokáže převést 110 klíčů a hodnot a vygeneruje kratší seznam.

57
Vývoj / Mapování znaků v bashi
« kdy: 02. 07. 2023, 20:02:29 »
Chtěl jsem v bashi napsat mapování, abych mohl převést znaky v řetězci UTF8. Nedařilo se mi vytvořit to potřebné pole pokud jsou zahrnuty nějaké speciální znaky jako  "׃" , "   ֯" .

  local replacements=(
['\u05C3 ']=' '
['\u05AF ']=' '
)

Když spustím takový skript v bashi vždy dostanu hlášku syntaktická chyba: očekáván operand (chybný token ... a zobrazí se znak či hodnota, která je na posledním elementu).

Zjistil jsem sice že to jde udělat pomocí regulárních výrazů, ale problém v tom případě je, že by to bylo značně pomalé na výkon. Klasická náhrada znaků pomocí mapování by myslím měla být výrazně výkonnější.

Pracuji na mint20. Dá se tento problém nějak obejít nebo je to v bashi neřešitelné a musím použít python, perl? Já už si na bash začínám zvykat a učit si jiný jazyk, kterému vůbec nerozumím se mi moc nechce.

58
Vývoj / Re:Náhrada kódu v bashi nefunguje
« kdy: 27. 06. 2023, 21:49:18 »
xsltproc jsem nikdy nezkoušel, slyším poprvé.

Opravený kod:

Kód: [Vybrat]
#!/bin/bash

# Název souboru
input_filename="puvodni_kod.html"
output_filename="novy_kod.html"

# Načtení obsahu souboru
file_content=$(cat "$input_filename")

# Řetězec s HTML tagy k odstranění
string_to_remove=$(< "tags_to_remove_from_code.txt")
# escapovat speciální znaky  [ ] ( ) \ . * ? ^ $ " & +
escaped_string_to_remove=$(sed 's/[][()\\.*?^$"&+]/\\&/g' <<< "$string_to_remove")

if [[ $file_content =~ $escaped_string_to_remove ]]; then
  echo "Výraz byl nalezen."
else
  echo "Výraz nebyl nalezen."
  exit
fi

echo "PRVNÍ VZOR: $escaped_string_to_remove"

# Odstranění řetězce ze souboru
# 2x slash // znamená, že se bude opakovat hledání na všechny
new_content="${file_content//$escaped_string_to_remove/}"
# #*</div></div></div> ...  odstraň nejdelší shodujícího se vzor ze začátku řetězce

new_escaped_string_to_remove="${escaped_string_to_remove#*</div></div></div>}"
echo "DRUHÝ VZOR: $new_escaped_string_to_remove"

# Odstranění počátečního řetězce ze souboru
new_content="${new_content/$new_escaped_string_to_remove/}"

# Přepsání souboru s novým obsahem
echo "$new_content" > "$output_filename"

59
Vývoj / Re:Náhrada kódu v bashi nefunguje
« kdy: 27. 06. 2023, 21:23:21 »
Děkuji. A ještě mám dotaz. Je v linuxu nějaký program pokud možno z terminálu který by mi mohl daný skript (obvykle bash, ale někdy zkouším perl nebo python ) zkontrolovat a upozornit mě na takové chyby? U toho chatGPT se to snadno stane, on jak radí, tak změní název proměnné.

60
Vývoj / Náhrada kódu v bashi nefunguje
« kdy: 27. 06. 2023, 16:49:12 »
Kdo používáte chatGPT, řeším následující problém. Zkopíruju diskusi z html stránky ve Firefoxu, vložím to do WYSIWIG editoru na blogspot.com . Odstranit fotky u hlavičky zpráv uživatele, případně to nahradit za jiný kód. Nyní zkouším 1) najít html kód - funguje 2) odstranit html kód - nefunguje.

Takže na blogspotu přepnu na html pohled, označím všechen kód s tagama, zkopíruji to do souboru puvodni_kod.html . Následně si najdu značky s obrázkem, který je zabalený ve wrapperu...

hledaný kód začíná takto:
Kód: [Vybrat]
</div></div></div><span class="flex-grow flex-shrink-0" style="font-family: arial;"></span><div class="flex p-4 gap-4 text-base md:gap-6 md:max-w-2xl lg:max-w-[38rem] xl:max-w-3xl md:py-6 lg:px-0 m-auto"><div class="flex-shrink-0 flex flex-col relative items-end"><div class="w-[30px]"><div class="relative flex"><span style="background: none; border: 0px none; box-sizing: border-box; display: inline-block; font-family: arial; height: initial; margin: 0px; max-width: 100%; opacity: 1; overflow: hidden; padding: 0px; position: relative; width: initial;"><span style="background: none; border: 0px none; box-sizing: border-box; display: block; height: initial; margin: 0px; max-width: 100%; opacity: 1; padding: 0px; width: initial;"><img alt="" aria-hidden="true" src="data:image/
a končí takto:
Kód: [Vybrat]
.png&amp;w=96&amp;q=75" style="border: medium none; box-sizing: border-box; display: block; height: 0px; inset: 0px; margin: auto; max-height: 100%; max-width: 100%; min-height: 100%; min-width: 100%; padding: 0px; position: absolute; width: 0px;" /></span></div></div></div><div class="relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]"><div class="flex flex-grow flex-col gap-3"><div class="min-h-[20px] flex items-start overflow-x-auto whitespace-pre-wrap break-words flex-col gap-4"><div class="empty:hidden">

Vložím to do souboru tags_to_remove_from_code.txt

Spustím skript remove-user-wrapper.sh
Kód: [Vybrat]
#!/bin/bash

# Název souboru
input_filename="puvodni_kod.html"
output_filename="novy_kod.html"

# Načtení obsahu souboru
file_content=$(cat "$input_filename")

# Řetězec s HTML tagy ke odstranění
# Při načítání obsahu ze souboru pomocí $(< "$input_filename") nemusíte escapovat uvozovky v textu. Tento způsob načítání souboru v shell skriptu umožňuje zachovat původní formátování a speciální znaky v textu bez potřeby escapování. Stejně tak při načítání řetězce ke odstranění pomocí $(< "hledany_kod.txt") nemusíte escapovat uvozovky ani jiné speciální znaky, pokud jsou přítomny v textu v souboru "hledany_kod.txt".
string_to_remove=$(< "tags_to_remove_from_code.txt")
# Přesto nebyl nahrazen a chatGPT přesto píše že mám escapovat speciální znaky [ ] \ . * ^ $
escaped_search_pattern=$(sed 's/[][\\.*^$]/\\&/g' <<< "$search_pattern")

if [[ $file_content =~ $escaped_search_pattern ]]; then
  echo "Výraz byl nalezen."
else
  echo "Výraz nebyl nalezen."
  exit
fi

# Odstranění řetězce ze souboru
# 2x slash // znamená, že se bude opakovat hledání na všechny
new_content="${file_content//$string_to_remove/}"
# #*</div></div></div> ...  odstraň nejdelší shodujícího se vzoru ze začátku řetězce
string_to_remove="${string_to_remove#*</div></div></div>}"
# Odstranění počátečního řetězce ze souboru
new_content="${file_content/$string_to_remove/}"

# Přepsání souboru s novým obsahem
echo "$new_content" > "$output_filename"

Kód: [Vybrat]
$ ./remove-user-wrapper.sh
Výraz byl nalezen a provedla se záměna.

Ale v nově vytvořeném či přepsaném souboru novy_kod.html stále vidím ten řetězec který měl být odstraněn. Víte v čem může být problém? V případě, že byste přišli na to jak provést tu záměnu a odstranění, pak budu řešit jak to nahradit za jiný kód (například nadpis s popiskem User:)

PS: Soubor jsem vytvořil v nano, myslím, že kódování a BOM snad v tom roli nehraje. Je to na linuxu.

Stran: 1 2 3 [4] 5 6 ... 25