Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 更改从变量接收的文件扩展名_Linux_Bash_Shell_Unix - Fatal编程技术网

Linux 更改从变量接收的文件扩展名

Linux 更改从变量接收的文件扩展名,linux,bash,shell,unix,Linux,Bash,Shell,Unix,我有一个变量: input_file = file.csv 我想将此文件的扩展名从file.csv更改为file.old 我在考虑类似于mv$input\u file basename$input\u file的东西。旧的但我真的不知道怎么做 filename="${input_file%.*}" mv $input_file $filename.old 这应该能帮你分类 这里提到了如何提取文件名和扩展名: 以下脚本应根据您的要求运行。如果使用的basename没有后缀(.csv),则返回扩

我有一个变量:

input_file = file.csv
我想将此文件的扩展名从file.csv更改为file.old

我在考虑类似于
mv$input\u file basename$input\u file的东西。旧的
但我真的不知道怎么做

filename="${input_file%.*}"
mv $input_file $filename.old
这应该能帮你分类

这里提到了如何提取文件名和扩展名:

以下脚本应根据您的要求运行。如果使用的
basename
没有后缀(.csv),则返回扩展名为的文件名。另外,不要在变量声明及其值之间使用空格

#/bin/bash
input_file=file.csv
filename="$(basename $input_file .csv)"
mv "$input_file" "$filename.old"
下面是basename命令的用法,供您参考

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"

尝试
mv$input\u文件${input\u文件%.*}。旧的