Teilstring in Bash extrahieren
Bei einem Dateinamen in der Form someletters_12345_moreleters.ext
möchte ich die 5 Ziffern extrahieren und in eine Variable einfügen.
Zur Verdeutlichung: Ich habe einen Dateinamen mit x Zeichen, dann eine fünfstellige Sequenz, die auf beiden Seiten von einem Unterstrich umgeben ist, und dann eine weitere Reihe von x Zeichen. Ich möchte die 5-stellige Zahl nehmen und in eine Variable einfügen.
Ich bin sehr daran interessiert, wie viele verschiedene Möglichkeiten es gibt, dies zu bewerkstelligen.
680
3
Verwenden Sie cut:
Mehr generisch:
Allgemeine Lösung, bei der die Nummer an beliebiger Stelle im Dateinamen stehen kann, unter Verwendung der ersten dieser Sequenzen:
Eine andere Lösung, um genau einen Teil einer Variablen zu extrahieren:
Wenn Ihre Dateinamen immer das Format
stuff_digits_...
haben, können Sie awk verwenden:Eine weitere Lösung, um alles außer Ziffern zu entfernen, ist die Verwendung von
Es gibt auch den in der Bash eingebauten Befehl 'expr':