【问题标题】:mv a file from textpad that have space and special charactermv 来自文本板的具有空格和特殊字符的文件
【发布时间】:2018-06-06 04:15:38
【问题描述】:

如何移动 (mv) 包含空格和特殊字符的文件 - linux 命令

  • file.txt 包含的是。

    04 安全@test.pdf

    05 安全@test.pdf

我的命令如下:

cat $DIR/file.txt | read line; do

mv $line ""$line{//[ ()@$]/_}" /$DIR/OUT done

非常感谢您的专业知识,

【问题讨论】:

  • 修正你的引号。
  • 去掉$DIR之前的斜线
  • 你要的是sed 's/[ ()@$]/_/g' <"$DIR/file.txt >/$DIR/OUT
  • 谢谢,我会试试的。sed 是一个流编辑器。流编辑器用于对输入流(文件或来自管道的输入)执行基本的文本转换。 computerhope.com/unix/used.htm
  • mv "$line" "${line//[ ()@$]/_}"。总是引用你的变量,特别是如果它们可能包含空格。

标签: linux sh


【解决方案1】:

此命令从file.txt 读取每一行,然后重命名文件,用_ 替换每个特殊字符。

$ while read line ; do mv "$DIR/$line" "$DIR/${line//[ ()@$]/_}" ; done < file.txt 

【讨论】:

  • 嗨@Rob,我按照你的例子,但我不需要添加替换:while read file;做 mv "$line" $DIR/;完成
  • 我误解了你的问题。由于您似乎在示例中尝试了替换,因此我认为这就是您想要的。由于我的回答没有回答你的问题,你应该不接受它。
  • 嗨@Rob,抱歉让你误会了。文件名:04 Security @test.pdf 此代码不能移动基于 file.txt 的文件,其中包含空格和特殊字符 cat $DIR/file.txt | while read line; do mv $line /$DIR/OUT mv:无法统计 04:没有这样的文件或目录 mv:无法统计安全性:没有这样的文件或目录 mv:无法统计 @test.pdf.pdf:没有这样的文件或目录,并且此代码可以在读取行时满足空格和特殊字符 `;做 mv "$line" $DIR/;完成
猜你喜欢
  • 2013-03-25
  • 1970-01-01
  • 2013-01-23
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-19
  • 2021-06-21
相关资源
最近更新 更多