--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