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:
</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:
.png&w=96&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
#!/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"
$ ./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.