Benutzer:Andreas Plank/Hilfreiche Kommandos für Text-Suche oder Text-Prozessierung (Linux): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(+Telegram-Plausch Such-Marker) |
|||
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Nur die ersten 3 Textfunde ausgeben und mehr nicht (hier XML-Beispiel): | Nur die ersten 3 Textfunde ausgeben und mehr nicht (hier XML-Beispiel): | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | cat Eine-RDF-oder-XML-Datei.rdf | awk '/<\?xml/ {zaehlefund++; if(zaehlefund>3){auszugeben=0}else{auszugeben=1}}; auszugeben {print};' | ||
# Such-Übereinstimmung abgezählt ausgeben (bis zum 3. Mal) | # Such-Übereinstimmung abgezählt ausgeben (bis zum 3. Mal) | ||
cat A-RDF-or-XML-file.rdf | awk '/<\?xml/ {countxml++; if(countxml>3){printing=0}else{printing=1}}; printing {print};' | cat A-RDF-or-XML-file.rdf | awk '/<\?xml/ {countxml++; if(countxml>3){printing=0}else{printing=1}}; printing {print};' | ||
# count search match and print it until the 3rd time | # count search match and print it until the 3rd time | ||
+ | </syntaxhighlight> | ||
== Telegram-Plausch Such-Marker == | == Telegram-Plausch Such-Marker == | ||
<span id="Suchmarker-Telegram-Kanal-auslesen"></span>Suchmarker eines Telegram-Kanals herauslesen (und durchzählen): | <span id="Suchmarker-Telegram-Kanal-auslesen"></span>Suchmarker eines Telegram-Kanals herauslesen (und durchzählen): | ||
− | # mit Telegram-Desktop-Programm ein „Chatexport“ ausführen lassen (das HTML ist hinreichend genug) | + | # mit Telegram-Desktop-Programm ein „Chatexport“ ausführen lassen (über das Gruppen-Menü ⋮, nur das HTML zu entnehmen ist hinreichend genug) |
# Speicherpfad ggf. im Skript anpassen (hier liegt aller Plausch/Geschreibe (Chat) im persönlichen Verzeichnis <code>~/Heruntergeladen/Telegram\ Desktop/ChatExport_2022-05-26</code> vor jeweils die <code>messages*.html</code>) | # Speicherpfad ggf. im Skript anpassen (hier liegt aller Plausch/Geschreibe (Chat) im persönlichen Verzeichnis <code>~/Heruntergeladen/Telegram\ Desktop/ChatExport_2022-05-26</code> vor jeweils die <code>messages*.html</code>) | ||
− | <syntaxhighlight lang="bash"> | + | <syntaxhighlight lang="bash" style="font-size:smaller;"> |
− | # sed | + | # sed -nr ist Kurzbefehl für sed --silent --regexp-extended |
− | + | sed --regexp-extended --silent '# stillschweigend suchen | |
− | |||
s@>(#[^<>]+)</a>@\nSuch-Marker: \1\n@gp; | s@>(#[^<>]+)</a>@\nSuch-Marker: \1\n@gp; | ||
# suche <a>#…</a> | # suche <a>#…</a> | ||
Zeile 20: | Zeile 21: | ||
# gp → g=globales Suchen, p=print, Ersetzung ausgeben | # gp → g=globales Suchen, p=print, Ersetzung ausgeben | ||
' ~/Heruntergeladen/Telegram\ Desktop/ChatExport_2022-05-26/messages*.html \ | ' ~/Heruntergeladen/Telegram\ Desktop/ChatExport_2022-05-26/messages*.html \ | ||
− | | grep - | + | | grep --ignore-case 'Such-Marker' \ |
− | | sort | uniq --count | sort -k3 \ | + | | sort | uniq --count --ignore-case | sort -k3 \ |
− | > | + | > Kanal-xy-Such-Marker_$(date '+%Y%m%d-%H%M').txt |
+ | # grep → nur die Zeilen mit „Such-Marker“ herausfischen | ||
# sort → vorsortieren | # sort → vorsortieren | ||
− | # uniq --count → einzelich machen aber zusammenzählen | + | # uniq --count → einzelich machen aber auf- und zusammenzählen |
− | # sort -k3 → | + | # uniq --ignore-case → GROß-klein-Schreibung als wortgleich verarbeiten |
+ | # sort -k3 → zusammenbezählte Such-Marker nach 3. Spalte (die Suchmarker-Spalte) sortieren | ||
+ | # Beispiel-Ergebnis: | ||
+ | # 1 Such-Marker: #wohlhäblich | ||
+ | # 1 Such-Marker: #worlich | ||
+ | # 14 Such-Marker: #Wortbedeutung | ||
+ | # 5 Such-Marker: #Wortbedeutungen | ||
+ | # 18 Such-Marker: #Wörterbuch | ||
</syntaxhighlight> | </syntaxhighlight> |
Aktuelle Version vom 14. November 2022, 19:29 Uhr
Nur die ersten 3 Textfunde ausgeben und mehr nicht (hier XML-Beispiel):
cat Eine-RDF-oder-XML-Datei.rdf | awk '/<\?xml/ {zaehlefund++; if(zaehlefund>3){auszugeben=0}else{auszugeben=1}}; auszugeben {print};'
# Such-Übereinstimmung abgezählt ausgeben (bis zum 3. Mal)
cat A-RDF-or-XML-file.rdf | awk '/<\?xml/ {countxml++; if(countxml>3){printing=0}else{printing=1}}; printing {print};'
# count search match and print it until the 3rd time
Telegram-Plausch Such-Marker
Suchmarker eines Telegram-Kanals herauslesen (und durchzählen):
- mit Telegram-Desktop-Programm ein „Chatexport“ ausführen lassen (über das Gruppen-Menü ⋮, nur das HTML zu entnehmen ist hinreichend genug)
- Speicherpfad ggf. im Skript anpassen (hier liegt aller Plausch/Geschreibe (Chat) im persönlichen Verzeichnis
~/Heruntergeladen/Telegram\ Desktop/ChatExport_2022-05-26
vor jeweils diemessages*.html
)
# sed -nr ist Kurzbefehl für sed --silent --regexp-extended
sed --regexp-extended --silent '# stillschweigend suchen
s@>(#[^<>]+)</a>@\nSuch-Marker: \1\n@gp;
# suche <a>#…</a>
# → ersetze: \nSuch-Marker: #gefundener-Suchmarker\n
# gp → g=globales Suchen, p=print, Ersetzung ausgeben
' ~/Heruntergeladen/Telegram\ Desktop/ChatExport_2022-05-26/messages*.html \
| grep --ignore-case 'Such-Marker' \
| sort | uniq --count --ignore-case | sort -k3 \
> Kanal-xy-Such-Marker_$(date '+%Y%m%d-%H%M').txt
# grep → nur die Zeilen mit „Such-Marker“ herausfischen
# sort → vorsortieren
# uniq --count → einzelich machen aber auf- und zusammenzählen
# uniq --ignore-case → GROß-klein-Schreibung als wortgleich verarbeiten
# sort -k3 → zusammenbezählte Such-Marker nach 3. Spalte (die Suchmarker-Spalte) sortieren
# Beispiel-Ergebnis:
# 1 Such-Marker: #wohlhäblich
# 1 Such-Marker: #worlich
# 14 Such-Marker: #Wortbedeutung
# 5 Such-Marker: #Wortbedeutungen
# 18 Such-Marker: #Wörterbuch