NoPaste

RegExp-Kurs_03_Muster_in_Datei.sh

von tegula
SNIPPET_DESC:
Bitte Dateinamensendung ".txt" entfernen.
SNIPPET_CREATION_TIME:
29.04.2022 13:45:12
SNIPPET_PRUNE_TIME:
Unendlich

SNIPPET_TEXT:
  1. #!/bin/sh
  2.  
  3. #' ---
  4. #' title: "Lösungsversuch zum RegEXP-Kurs 03 - egrep"
  5. #' author: "tegula"
  6. #' date: " 24 4 2022"
  7. #' output: html_document
  8. #' ---
  9.  
  10.  
  11. # ------------------------
  12. # ------------------------
  13.  
  14. #' **Ursprünglich Aufgaben:** https://debianforum.de/forum/viewtopic.php?t=184043
  15. #' ** Hier bearbeite Variante:** "Arbeite vorerst mal nur mit den Musterdateien und gehe dafuer die Einheit nochmal durch. Mit Musterdateien ist es wie ich beschreibe. Wenn du es auf der Kommandozeile angibst, dann treten weitere Effekte auf, die dich nun verwirren" ( https://debianforum.de/forum/viewtopic.php?p=1300875#p1300875 )
  16. # ------------------------
  17. # ------------------------
  18.  
  19.  
  20. # AUfgabe 1 bis 6
  21. for musterdatei in a1.txt a2.txt a3.txt a4.txt a5.txt a6.txt; do
  22.   printf "${musterdatei}: " # Aufgaben nummer bzw. Dateiname ausgeben
  23.   cat  ${musterdatei} # Inhalt der Musterdatei ausgeben
  24.   printf "\n \n" # Zwei Zeilenumbrüche ausgeben (= mindestens eine Leerzeile)
  25.   egrep --line-number -f ${musterdatei} schwaebische-kunde.txt # Muster in schwaebische-kunde.txt suchen
  26.   printf "******\n\n" # Trenner zwischen einzelnen Aufgaben
  27. done
  28.  
  29. # ------------------------
  30. # ------------------------
  31.  
  32. # Aufgabe 7 (fgrep statt egrep)
  33. ## --> Unterschied zu Aufgabe 1-6 (egrep): Fragezeichen ("?") und (".") müssen nicht escapet werden, weil fgrep (im Gegensatz zu egrep) die, ihm übergebenen, Muster, immer als literale Wörter interpretiert.
  34. for musterdatei in a1.txt a2.txt a3.txt a4.txt a5_fuer_fgrep.txt a6_fuer_fgrep.txt; do
  35.   printf "${musterdatei}: " # Aufgaben nummer bzw. Dateiname ausgeben
  36.   cat  ${musterdatei} # Inhalt der Musterdatei ausgeben
  37.   printf "\n \n" # Zwei Zeilenumbrüche ausgeben (= mindestens eine Leerzeile)
  38.   fgrep --line-number -f ${musterdatei} schwaebische-kunde.txt # Muster in schwaebische-kunde.txt suchen
  39.   printf "******\n\n" # Trenner zwischen einzelnen Aufgaben
  40. done
  41.  
  42. # ------------------------
  43. # ------------------------
  44.  
  45. # Aufgabe 8
  46. ## --> Die Mustersuche wird innerhalb der Datei RegExp-Kurs_02_Aufgabe_14.R ( https://debianforum.de/forum/pastebin/?mode=view&s=41639 ) durchgeführt.
  47.  
  48. # Klammern
  49. ## --> Klammern haben eine Sonderbedeutung innerhalb von egrep --> müssen (auch in Musterdatei) escapet werdem
  50. cat  a8_klammern.txt # Inhalt der Musterdatei ausgeben
  51. egrep --line-number -f a8_klammern.txt RegExp-Kurs_02_Aufgabe_14.R
  52.  
  53. # Sterne
  54. ## --> Das Sternchen (*) hat eine Sonderbedeutung innerhalb von egrep --> muss (auch in Musterdatei) escapet werdem
  55. cat a8_sterne.txt # Inhalt der Musterdatei ausgeben
  56. egrep --line-number -f a8_sterne.txt RegExp-Kurs_02_Aufgabe_14.R
  57.  
  58. # Punkte
  59. ## --> Der Punkt (".") hat eine Sonderbedeutung innerhalb von egrep --> muss (auch in Musterdatei) escapet werdem
  60. cat a8_punkte.txt # Inhalt der Musterdatei ausgeben
  61. egrep --line-number -f a8_punkte.txt RegExp-Kurs_02_Aufgabe_14.R
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN