Das folgende Skript sollte nach Ihren Anforderungen arbeiten. Wenn Sie basename
ohne ein Suffix (.csv) verwenden, gibt es Dateiname mit Erweiterung zurück. Verwenden Sie außerdem keine Leerzeichen zwischen der Variablendeklaration und ihrem Wert.
#/bin/bash
input_file=file.csv
filename="$(basename $input_file .csv)"
mv "$input_file" "$filename.old"
Unten ist die Verwendung von basename Befehl als Referenz.
Usage: basename NAME [SUFFIX]
or: basename OPTION... NAME...
Print NAME with any leading directory components removed.
If specified, also remove a trailing SUFFIX.
Mandatory arguments to long options are mandatory for short options too.
-a, --multiple support multiple arguments and treat each as a NAME
-s, --suffix=SUFFIX remove a trailing SUFFIX; implies -a
-z, --zero end each output line with NUL, not newline
--help display this help and exit
--version output version information and exit
Examples:
basename /usr/bin/sort -> "sort"
basename include/stdio.h .h -> "stdio"
basename -s .h include/stdio.h -> "stdio"
basename -a any/str1 any/str2 -> "str1" followed by "str2"