Bash 基名修改

Bash Basename Modification

在 bash 中,我正在加载一个文件,例如:

/path/to/dir/filename.ext

现在的想法是使用该文件名和 "extend its' name" 修改后,例如:

some operation /path/to/dir/filename.ext > path/to/dir/filename_extendingfilename.ext;

到目前为止,我已经成功地从另一个已经在此处提出的问题(供参考Extract filename and extension in Bash)调用了文件名:

basename filename .extension

basename /path/to/dir/filename.txt .txt

filename

我遇到的问题是使用“_ extension.ext”创建一个新文件,该文件具有源文件的文件名和扩展区

bash shell parameter expansion 是这里的一个选项:

f=/path/to/dir/filename.ext
f2=${f%.ext*}"_extendingfilename.ext"

shell 参数扩展在 .ext 的最后一次出现时被截断(即它也可以正确地用于像 /path/to/dir/file.ext.name.ext 这样的文件)

这里有一个重定向的例子:

f=/path/to/dir/filename.ext
someoperation $f > ${f%.ext*}"_extendingfilename.ext"