--Erstellen Sie eine leere Datei mit dem durch das Argument angegebenen Dateinamen
#!/bin/bash
file=$1
if [[ -e ${file} ]]; then
maxnumber=$(find . -mindepth 1 -maxdepth 1 -printf "%f\n" \
| grep -e "^${file}\$" -e "^${file}_[0-9][0-9]*\$" \
| sed "s/^${file}_\\{0,1\\}//" \
| sed 's/^$/0/' \
| sort -rn \
| head -n 1 ) ;
file+="_$((maxnumber+1))"
fi
touch $file
#Aktuelles Verzeichnis suchen(.)Durchsuchen Sie die Dateiliste von
find . -mindepth 1 -maxdepth 1 -printf "%f\n"
# -mit mindepth 1-Begrenzen Sie die von maxdepth 1 gesuchte Hierarchie auf nur aktuell
# -Printf druckt nur den Dateinamen ohne den Verzeichnisnamen(%f)Mit einem Zeilenumbruch trennen (\n)
#Suchen Sie mit grep nach nicht nummerierten und nummerierten Dateien
grep -e "^${file}\$" -e "^${file}_[0-9][0-9]*\$"
# -Verwenden Sie den regulären Ausdruck als e-Option
#"Dateiname_"Dateiname" in "Nummer"_Es wird nur die Nummer ausgegeben, außer
sed "s/^${file}_\\{0,1\\}//"
# {0,1}Stellt eine Wiederholung des vorherigen Zeichens von 0 zu 1 oder weniger dar._Match mit oder ohne
#diese Zeit{}Flucht(\)Ist notwendig.\Weil es entkommen muss\\Wird
#Nicht nummerierte Dateien sind Leerzeilen. Ersetzen Sie sie daher durch 0
sed 's/^$/0/'
# ^Die folgenden Zeichen stimmen mit dem Zeilenanfang überein.$Gibt an, dass die vorherige Zeichenfolge mit dem Zeilenende übereinstimmt
# ^$Zeigt auf eine leere Zeile, da nichts dazwischen geschrieben ist
#Sortieren Sie in absteigender Reihenfolge der Zahlen
sort -rn
# -r Option zum Sortieren in umgekehrter Reihenfolge
# -n Optionen zum Betrachten von Zeichenfolgen als Zahlen
#Geben Sie nur die größte Anzahl aus
head -n 1
# -n 1 Nur die erste Zeile ausgeben
Mit den bisherigen Befehlen konnte ich die größte Anzahl doppelter Dateinamen erhalten. Durch Einfügen dieser Befehle in die Befehlsersetzung $ () wird das Ausführungsergebnis der Variablen maxnumber zugewiesen.
Erstellen Sie von hier aus eine neue Nummer und eine Datei.
#Im Dateinamen "_Geben Sie "Nummer"
file+="_$((maxnumber+1))"
#Fügen Sie 1 zu maxnumber und 1 zum Dateinamen hinzu_Nummer hinzufügen"
#Dateierstellung
touch ${file}
Wenn der Dateiname nicht dupliziert wird, wird er so erstellt, wie er ohne Nummer ist.
Recommended Posts