我收到名称包含空格并每周更改的文件(名称包含周数)
IE,本周的文件看起来像This is the file - w37.csv
我必须编写一个脚本来考虑这个文件。 我没有成功写这个剧本。
如果我这样做:
$FILE="This is the file - w*.csv"
我找不到/dir/${FILE}
我尝试了"This\ is\ the\ file - w*.csv"
我尝试了/dir/"${FILE}"
和"/dir/${FILE}"
但我仍然无法找到我的档案
看起来名称中的空格需要变量要双引号,但是,不会分析通配符。
你有想法(或答案)吗?
此致
奥利弗
答案 0 :(得分:3)
echo /dir/"This is the file - w"*.csv
或 - 你几乎尝试过 -
echo /dir/This\ is\ the\ file\ -\ w*.csv
答案 1 :(得分:1)
首先,你不应该在作业中使用美元符号。
此外,在赋值中不调用通配符扩展。例如,您可以使用流程替换:
FILE=$(echo 'This is the file - w'*.csv)
请注意,通配符本身不包含在引号中。引号可防止通配符扩展。
答案 2 :(得分:1)
使用bash数组
v=( /dir/This\ is\ the\ file - w*.csv )
如果确保只有一个匹配的文件,您只需展开$v
即可。否则,您可以通过扩展为
"${v[@]}"
或使用
的个人比赛"${v[0]", "${v[1]}", etc