在文本文件中,处理空格的文件名

分享于 

1分钟阅读

互联网

  繁體

问题:

我有一个"列表.txt"的文本文件中列出的文件列表,如下所示:


one file.jpg 


two file.jpg 


three file.jpg



现在我想将所有文件复制到另一个目录,我尝试:

cp $( cat list.txt ) other_directory 

但是,正如你所见,文件中有空格,然后bash将名称分成两个,并且不复制文件。

我已经尝试用引号和双引号将名称引起来,并且我尝试使用反斜杠和space()以及它们的组合进行转义,但无济于事。


"one file.jpg"


'one file.jpg'


one file.jpg



我该怎么办?


答案1:

是否可以重命名原始文件?如果是这样,为什么不直接在脚本中重命名它们来替换空格?


答案2:

这把文件逐个拷贝(每个cp命令一个文件),每个源文件名都用双引号引起来:


awk '{ print "cp "" $0 "" other_directory }' list.txt | bash





文件  文本  lis  PROC  列表  spa  
相关文章