所以我正在创建一个变量,我希望通过添加到结尾来回显它,如下所示:
我有一个文件:Filename-08-10-2017.txt
我创建了一个变量:
myvariable=Filename*.txt
当我回应那个变量时:
echo $myvariable
输出Filename-08-10-2017.txt
但我想将名称更改为.zip
所以我想去:
echo $myvariable.zip
并输出Filename-08-10-2017.txt.zip
然而它输出:
Filename*.txt.zip
如何按照我想要的方式输出?
感谢。
编辑:
我有点想通了。
我保存了一个新变量$($ myvariable),保存了输出。
答案 0 :(得分:0)
文件名来自glob扩展。如果要使用glob扩展迭代所有文件,可以:
myvariable=Filename*.txt
for f in $myvariable; do echo $f; done
如果你想"禁用"全球扩张,例如通过Filename*.txt
得到里程echo $myvariable
,你可以set -f
或者只用双引号来包装变量:echo "$myvariable"
。
要设置文本,您可以执行以下操作:
for f in $myvariable; do echo $f"whatever_like_zip"; done
如果你想做一些文字替换,你可以
for ... echo ${f/%txt/zip} ; done
它会将所有txt
文件名更改为zip
。
此外,如果您想重命名该文件,请将上述echo...
更改为
mv "$f" "yourNewNameHere"
无论如何,通过阅读你的问题,我不太清楚,你真正想要的是什么。
答案 1 :(得分:-1)
Yuo可以使用sed
试试这个
file="test.txt"
newext=$(echo "$file" | sed -e "s|txt|zip|g")
echo $newext