2017-07-20 2 views

Antwort

0
filename="${input_file%.*}" 
mv $input_file $filename.old 

Dies sollten Sie

bekommen sortiert

Wie Dateinamen und Erweiterung zu extrahieren ist hier erwähnt: Extract filename and extension in Bash

0

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

versuchen mv $input_file ${input_file%.*}.old

Verwandte Themen