NoPaste

Ausgabe_nur_Musterdateien_RegExp_Kurs_03

von tegula

SNIPPET_TEXT:
  1. $ #!/bin/sh
  2. $
  3. $ #' ---
  4. $ #' title: "Lösungsversuch zum RegEXP-Kurs 03 - egrep"
  5. $ #' author: "tegula"
  6. $ #' date: " 29 4 2022"
  7. $ #' output: html_document
  8. $ #' ---
  9. $
  10. # ------------------------
  11. # ------------------------
  12.  
  13. #' **Ursprünglich Aufgaben:** https://debianforum.de/forum/viewtopic.php?t=184043
  14. #' ** 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 )
  15.  
  16. # ------------------------
  17. # ------------------------
  18. $
  19. $ # Aufgabe 1 bis 6
  20. $ for musterdatei in a1.txt a2.txt a3.txt a4.txt a5.txt a6.txt; do
  21. >   printf "${musterdatei}: " # Aufgaben nummer bzw. Dateiname ausgeben
  22. >   cat  ${musterdatei} # Inhalt der Musterdatei ausgeben
  23. >   printf "\n \n" # Zwei Zeilenumbrüche ausgeben (= mindestens eine Leerzeile)
  24. >   egrep --line-number -f ${musterdatei} schwaebische-kunde.txt # Muster in schwaebische-kunde.txt suchen
  25. >   printf "******\n\n" # Trenner zwischen einzelnen Aufgaben
  26. > done
  27. a1.txt: Reiter
  28.  
  29. 9:Und mancher deutsche Reitersmann
  30. 12:Fast musst' der Reiter die Maehre tragen.
  31. 22:Fuenfzig tuerkische Reiter daher,
  32. 37:Er schwingt es auf des Reiters Kopf,
  33. ******
  34.  
  35. a2.txt: Viel Steine
  36.  
  37. 8:Viel Steine gab's und wenig Brot,
  38. ******
  39.  
  40. a3.txt: heil'gen
  41.  
  42. 4:Zum heil'gen Land gezogen kam,
  43. ******
  44.  
  45. a4.txt: Er sprach: "Sagt an,
  46.  
  47. 53:Er sprach: "Sagt an, mein Ritter werth!
  48. ******
  49.  
  50. a5.txt: eben\.
  51.  
  52. 18:Und kostet's ihn das eigne Leben.
  53. ******
  54.  
  55. a6.txt: \?
  56.  
  57. 54:Wer hat Euch solche Streich' gelehrt?"
  58. ******
  59.  
  60. $
  61. $ # ------------------------
  62. $ # ------------------------
  63. $
  64. $ # Aufgabe 7 (fgrep statt egrep)
  65. $ ## --> 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.
  66. $ for musterdatei in a1.txt a2.txt a3.txt a4.txt a5_fuer_fgrep.txt a6_fuer_fgrep.txt; do
  67. >   printf "${musterdatei}: " # Aufgaben nummer bzw. Dateiname ausgeben
  68. >   cat  ${musterdatei} # Inhalt der Musterdatei ausgeben
  69. >   printf "\n \n" # Zwei Zeilenumbrüche ausgeben (= mindestens eine Leerzeile)
  70. >   fgrep --line-number -f ${musterdatei} schwaebische-kunde.txt # Muster in schwaebische-kunde.txt suchen
  71. >   printf "******\n\n" # Trenner zwischen einzelnen Aufgaben
  72. > done
  73. a1.txt: Reiter
  74.  
  75. 9:Und mancher deutsche Reitersmann
  76. 12:Fast musst' der Reiter die Maehre tragen.
  77. 22:Fuenfzig tuerkische Reiter daher,
  78. 37:Er schwingt es auf des Reiters Kopf,
  79. ******
  80.  
  81. a2.txt: Viel Steine
  82.  
  83. 8:Viel Steine gab's und wenig Brot,
  84. ******
  85.  
  86. a3.txt: heil'gen
  87.  
  88. 4:Zum heil'gen Land gezogen kam,
  89. ******
  90.  
  91. a4.txt: Er sprach: "Sagt an,
  92.  
  93. 53:Er sprach: "Sagt an, mein Ritter werth!
  94. ******
  95.  
  96. a5_fuer_fgrep.txt: eben.
  97.  
  98. 18:Und kostet's ihn das eigne Leben.
  99. ******
  100.  
  101. a6_fuer_fgrep.txt: ?
  102.  
  103. 54:Wer hat Euch solche Streich' gelehrt?"
  104. ******
  105.  
  106. $
  107. $ # ------------------------
  108. $ # ------------------------
  109. $
  110. $ # Aufgabe 8
  111. $ ## --> Die Mustersuche wird innerhalb der Datei RegExp-Kurs_02_Aufgabe_14.R ( https://debianforum.de/forum/pastebin/?mode=view&s=41639 ) durchgeführt.
  112. $
  113. $ # Klammern
  114. $ ## --> Klammern haben eine Sonderbedeutung innerhalb von egrep --> müssen (auch in Musterdatei) escapet werden
  115. $ cat  a8_klammern.txt # Inhalt der Musterdatei ausgeben
  116. \(
  117. \)
  118. \[
  119. \]
  120. \{
  121. \}
  122. $ egrep --line-number -f a8_klammern.txt RegExp-Kurs_02_Aufgabe_14.R
  123. 53:    } else if ((escape == zeichenvektor[i]) & (standard == "meta")) {
  124. 59:    } else if ((escape != zeichenvektor[i]) & (standard == "literal")) {
  125. 65:    } else if ((escape != zeichenvektor[i]) & (standard == "meta")) {
  126. 71:    } else {
  127. 74:    }
  128. 76:  }
  129. 78:}
  130. grep: RegExp-Kurs_02_Aufgabe_14.R: Übereinstimmungen in Binärdatei
  131. $
  132. $ # Sterne
  133. $ ## --> Das Sternchen (*) hat eine Sonderbedeutung innerhalb von egrep --> muss (auch in Musterdatei) escapet werden
  134. $ cat a8_sterne.txt # Inhalt der Musterdatei ausgeben
  135. \*
  136. $ egrep --line-number -f a8_sterne.txt RegExp-Kurs_02_Aufgabe_14.R
  137. 19:#' **Aufgabenstellung:** "[Aufgabe] 14) Auf die vorigen Aufgabe aufbauend: Schreibe ein Programm, das den escapeten Text wieder einliest und eine sprachliche Beschreibung davon ausgibt, aehnlich wie in (5). Pruefe damit deine Loesungen fuer die Aufgaben (8) bis (12)" ( https://debianforum.de/forum/viewtopic.php?p=1299654#p1299654 ).
  138. 24:#' **Funktion definieren:**  
  139. grep: RegExp-Kurs_02_Aufgabe_14.R: Übereinstimmungen in Binärdatei
  140. $
  141. $ # Punkte
  142. $ ## --> Der Punkt (".") hat eine Sonderbedeutung innerhalb von egrep --> muss (auch in Musterdatei) escapet werden
  143. $ cat a8_punkte.txt # Inhalt der Musterdatei ausgeben
  144. \.
  145. $ egrep --line-number -f a8_punkte.txt RegExp-Kurs_02_Aufgabe_14.R
  146. 19:#' **Aufgabenstellung:** "[Aufgabe] 14) Auf die vorigen Aufgabe aufbauend: Schreibe ein Programm, das den escapeten Text wieder einliest und eine sprachliche Beschreibung davon ausgibt, aehnlich wie in (5). Pruefe damit deine Loesungen fuer die Aufgaben (8) bis (12)" ( https://debianforum.de/forum/viewtopic.php?p=1299654#p1299654 ).
  147. 50:                             ". "
  148. 57:                             ". ")
  149. 63:                             ". ")
  150. 69:                             ". ")
  151. grep: RegExp-Kurs_02_Aufgabe_14.R: Übereinstimmungen in Binärdatei
  152. $
  153.  

Quellcode

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