2014-02-12 50 views
1

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

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

这样,我得到的 “文件名” 的字符串。 我想它存储在一个变量称为文件,然后使用它是这样的:

DIR=$PATH/$FILE.txt 

所以,我的脚本要创建一个file.txt的与PDF的同名(未副本该文件,只是名称) 这样我试图分配的结果回声|切

FILE= 

但我只得到“路径/ .txt”,所以文件名丢失。

+0

'FILE = \'echo“filename.pdf”|切“-d”。 -f 1 \'' –

+0

''FILE ='basename filename.pdf .pdf''' – aragaer

回答

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

所以,我的脚本要创建一个file.txt的与PDF的同名

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

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

echo "$p" 
filename.txt 
1

POSIX参数扩展会读取

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