![删除文件名的子字符串](https://linux22.com/image/95825/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E5%90%8D%E7%9A%84%E5%AD%90%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我的文件名的后缀会有所不同.csv.new
。我需要把茎拔出来。例子file1_test.csv.new
。我需要去掉主干file1_test
来创建一个变量file1_test.err
。
答案1
basename
是一个轻量级工具,可以满足您的要求,例如
$ basename file1_test.csv.new .csv.new
file1_test
因此
var=$(basename file1_test.csv.new).err
其中var
将包含file1_test.err
所需的内容。
答案2
运行这个。使%
bash 向后删除通配匹配。
for F in *.csv.new; do
touch ${F%.csv.new}.err
done
如果你有文件
file1_test.csv.new
file2_test.csv.new
你会得到
file1_test.err
file2_test.err