lima-city: Webhosting, Domains und Cloud
1 Pluspunkt 0 Minuspunkte

Wie kann ich in Bash einen String aus einem String entfernen? Ich habe dieses Script

#!/bin/bash

configs=$(ls /etc/nginx/sites-enabled/)

for name in $configs; do
        echo "$name gefunden"
done

Die Ausgabe listet alle Dateinamen auf wie z.B

Datei1.conf
Datei2.conf
Datei3.conf

Wie kann ich aber das .conf am Ende jedes Dateinamen entfernen so das die Liste so ausslieht

Datei1
Datei2
Datei3
von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Du kannst das Suffix .conf mit Parameterersetzung entfernen. 

for name in $configs; do
    base_name="${name%.conf}"
    echo "$base_name gefunden"
done
von (617 Punkte)  
0 Pluspunkte 0 Minuspunkte

Du kannst die Dateiendung mit sed entfernen.

name=$(echo "$name" | sed 's/\.conf$//')
von (714 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Beiträge bewerten
  • Inhalte bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft. Unser Ziel: Guter Inhalt. Für alle.

2.3k Fragen

2.8k Antworten

260 Kommentare

12 Nutzer