如何提取文件名并更改bash的结尾?

时间:2019-03-21 17:10:59

标签: string bash

我有一个bash脚本,它接受以.in结尾的文件名,例如a1.in a2.in,并且我想采用该参数并提取a1并在其中添加.out,该怎么做?

我知道接受参数是$1-但是我该如何提取a1

2 个答案:

答案 0 :(得分:1)

如果文件的扩展名只有一个

$ echo "a.in" | cut -d '.' -f1
a

答案 1 :(得分:1)

要从参数(或其他变量)中删除固定的后缀,请使用${1%.in} -它将删除结尾的.in或如果参数不以.in结尾则不执行任何操作。要添加后缀,只需添加:${1%.in}.out

要删除 any 后缀,可以在%之后使用glob模式,如下所示:${1%.*}。这将删除最短的匹配后缀。您可以使用%%删除最长匹配的后缀:${1%%.*}