如何在变量中存储echo |削减结果?

时间:2014-02-12 11:17:56

标签: linux string bash shell

例如

    echo "filename.pdf" | cut -d'.' -f 1

这样我就得到了“filename”字符串。 我想将它存储在一个名为FILE的变量中,然后像这样使用它:

    DIR=$PATH/$FILE.txt

所以,我的脚本想要创建一个与pdf名称相同的file.txt(不是文件的副本,只是名称) 这样我试图分配echo的结果切

   FILE= 

但我只得到“path / .txt”,因此缺少文件名。

3 个答案:

答案 0 :(得分:4)

FILE=$(echo "filename.pdf" | cut -d'.' -f 1)

答案 1 :(得分:2)

  

因此,我的脚本想要创建一个与pdf名称相同的file.txt

您可以使用BASH字符串操作:

s="filename.pdf"
p="${s/%.pdf/.txt}"

echo "$p"
filename.txt

答案 2 :(得分:1)

POSIX参数扩展将读取

file=filename.pdf
filename="${file%%.*}"  # Two % will remove multiple extensions, if applicable
dir=$path/$filename.txt