【发布时间】:2019-08-12 14:58:16
【问题描述】:
我有一个 bash 脚本,它接受以 .in 结尾的文件名,例如 a1.in a2.in,我想采用该参数并提取 a1 并将 .out 添加到它,如何我应该这样做吗?
我知道接受参数是$1 - 但我如何提取a1?
【问题讨论】:
我有一个 bash 脚本,它接受以 .in 结尾的文件名,例如 a1.in a2.in,我想采用该参数并提取 a1 并将 .out 添加到它,如何我应该这样做吗?
我知道接受参数是$1 - 但我如何提取a1?
【问题讨论】:
要从参数(或其他变量)中删除固定后缀,请使用${1%.in}——这将删除结尾的.in,或者如果参数不以.in 结尾,则不执行任何操作。要添加后缀,只需添加:${1%.in}.out
要删除 any 后缀,您可以在 % 之后使用 glob 模式,如下所示:${1%.*}。这将删除最短的匹配后缀。可以用%%去掉最长匹配后缀:${1%%.*}
【讨论】:
如果您的文件只有 一个 扩展名:
$ echo "a.in" | cut -d '.' -f1
a
【讨论】: