Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
String 如何在bash中提取文件名并更改结尾?_String_Bash - Fatal编程技术网

String 如何在bash中提取文件名并更改结尾?

String 如何在bash中提取文件名并更改结尾?,string,bash,String,Bash,我有一个bash脚本,它接受以.in结尾的文件名,例如a1.ina2.in,我想获取该参数并提取a1并将.out添加到它,我该怎么做 我知道接受参数是$1-但是如果您的文件只有一个扩展名,如何提取a1?: $ echo "a.in" | cut -d '.' -f1 a 如果文件只有一个扩展名: $ echo "a.in" | cut -d '.' -f1 a 若要从参数(或其他变量)中删除固定后缀,请使用${1%}--这将删除中的尾随。如果参数未以结尾,则不执行任何操作。要添加后缀,只需添

我有一个bash脚本,它接受以
.in
结尾的文件名,例如
a1.in
a2.in
,我想获取该参数并提取
a1
并将
.out
添加到它,我该怎么做

我知道接受参数是
$1
-但是如果您的文件只有一个扩展名,如何提取
a1

$ echo "a.in" | cut -d '.' -f1
a
如果文件只有一个扩展名:

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

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


要删除任何后缀,可以在
%
后面使用glob模式,例如:
${1%.*}
。这将删除最短的匹配后缀。您可以使用
%%
删除最长的匹配后缀:
${1%%.*}

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

要删除任何后缀,可以在
%
后面使用glob模式,例如:
${1%.*}
。这将删除最短的匹配后缀。您可以使用
%%
删除最长的匹配后缀:
${1%%.*}