【发布时间】:2018-10-07 14:35:06
【问题描述】:
我正在尝试找出一种自动更改版本号的方法,为此我有一个脚本会尝试读取文件然后对其进行更改。
\\ students.txt
this is a text, text is not so bad, and more text
我在同一个目录中有students.txt 和changetext.sh 文件。
\\ changetext.sh
sed -i='' "s/, /- /g" students.txt
当我在带有 Windows 10 的 Windows64 位系统上的 Cygwin 上运行此命令时,它在控制台上运行良好。但是当我尝试从上面显示的 shell 脚本运行这个命令时,它会给出以下错误。
$ ./changetext.sh
: No such file or directoryt
我不确定是什么问题?有人可以指导我吗?
【问题讨论】:
-
尝试更改脚本,使其显示“./students.txt”而不是“students.txt”,看看是否有所不同。
-
我也试过了,但它仍然抛出同样的错误。我相信有些东西与第一个单引号字符串有关,或者有些问题与 64 位系统上的 cygwin 相关。不确定。我是 cygwin 的新手
-
当它说“没有这样的文件或目录”时,它还说什么? IE。什么是完整的错误行?它可能还会说“bash: ./changetxt.sh”或“sed: can't read students.txt”
-
哦,这就是它所说的。这实际上是我复制的 cygwin 控制台输出。我会正确地重新格式化它。
-
一个空白的“没有这样的文件”可能意味着它认为它正在寻找一个不可见的字符和/或该行格式错误。我将你所有的脚本复制到我的终端并运行它们,它工作得很好,所以这里的语法很好。您可以将这些复制到不同的目录中,看看它是否也适合您。您是使用剪贴板直接将它们复制到这篇文章中,还是手动重新输入它们?