staging.inyokaproject.org

script abschnitte nicht ausgeben

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

itoss

Avatar von itoss

Anmeldungsdatum:
4. April 2014

Beiträge: 419

Ich habe hier ein script das via shc compiliert wird.

um das fertige Programm klein zu halten, hab ich komentare, leerzeilen etc via sed entfernt.

Nun stehe ich vor der Aufgabe noch noch eine Funktionen via sed zu entfernen

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11

script code foo bar ...

kann_weg () {
foo 
bar
bar
foo
}

scriptcode foo bar ...

wie lösche ich nun die Script Funktion kann_weg aus der Scriptdatei ? sed sollte alles nach kann_weg bis } löschen.

cat script.sh | sed 1,/"kann_weg"/d löscht alles bis zu kann_weg :/

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

itoss schrieb:

wie lösche ich nun die Script Funktion kann_weg aus der Scriptdatei ? sed sollte alles nach kann_weg bis } löschen.

cat script.sh | sed 1,/"kann_weg"/d löscht alles bis zu kann_weg :/

Logisch, denn Du sagst ja, dass er in der ersten Zeile mit dem Löschen beginnen soll.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$ sed '/^kann_weg (/,/^}$/d' <<CODE
> script code foo bar ...
> 
> kann_weg () {
> foo 
> bar
> bar
> foo
> }
> 
> scriptcode foo bar ...
> CODE
script code foo bar ...


scriptcode foo bar ...

itoss

(Themenstarter)
Avatar von itoss

Anmeldungsdatum:
4. April 2014

Beiträge: 419

sed awk und co sind schon ne wissenschaft für sich ...

werde den code Schnipsel in den nächsten Tagen testen

danke für die Info 😉

PS : habe gerade aktuell ein dringenderes Anliegen :

1
2
3
4
5
6

case $1 in
#  -[l|L|o|O][1|2|3] | # toll wenns denn klappt .... tuts aber nicht 
  -l1|-L1|-l2|-L2|-l3|-L3|-o1|-O1|-o2|-O2|-o3|-O3

foo bar

das muss doch irgendwie kürzer oder zusammengefasst umsetzbar sein - wüsste aber nicht was ich suchen soll - bash case Variablen zusammenfassen etc liefert mir alles nur nicht das was ich suche ;/

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

itoss schrieb:

PS : habe gerade aktuell ein dringenderes Anliegen :

Bitte ein neues Thema eröffnen.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

itoss schrieb:

das muss doch irgendwie kürzer oder zusammengefasst umsetzbar sein - wüsste aber nicht was ich suchen soll - bash case Variablen zusammenfassen etc liefert mir alles nur nicht das was ich suche ;/

Einfach die Variable sauber quoten (vgl. Shell/Bash-Skripting-Guide für Anfänger (Abschnitt „Case-Anweisungen“)) und die info-Seite, die "info bash pattern" liefert, lesen.

Dann ist das kein großes Problem:

1
2
3
4
5
case "$1" in
   -[oOlL][1-3])
       echo "got it!"
       ;;
esac

itoss

(Themenstarter)
Avatar von itoss

Anmeldungsdatum:
4. April 2014

Beiträge: 419

ja das quoting ...

Antworten |