如何在bash终端中从%f获取没有扩展名的文件名?

时间:2014-06-19 11:28:45

标签: bash filenames

以下程序(when-changed)给出了可以在命令中使用的文件名%f。如何才能从%f获取没有文件扩展名的文件名?

这是我想要使用的命令:

when-changed *.scss -c sassc %f f%-min.css

它保存了一个文件名,如:layout.scss-min.css 我需要的只是layout-min.css,如果可能的话。

2 个答案:

答案 0 :(得分:2)

创建一个小shell脚本,为您调用sassc,而不是直接调用它:

#!/bin/bash
filename=$1
outfile="${filename%.*}"  # Do your filename replacement here
sassc "$filename" "$outfile"

然后致电:

 when-changed *.scss -c ./myscript.sh %f

答案 1 :(得分:0)

您无法在命令行上执行此操作。文件名并未真正放在命令行的%f变量中。相反,您将%f传递给更改时间,并且更改时自身将其替换为文件名。

更改source of when-changed以执行您想要的操作。例如,更改此部分:

def run_command(self, file):
    os.system(self.command.replace('%f', file))

对此:

def run_command(self, file):
    command = self.command
    command = command.replace('%f', file)
    command = command.replace('%c', file.replace('.scss', ''))
    os.system(command)