Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash SED命令在命令行中工作,但不在脚本中[未找到文件错误]_Bash_Shell_Sed - Fatal编程技术网

Bash SED命令在命令行中工作,但不在脚本中[未找到文件错误]

Bash SED命令在命令行中工作,但不在脚本中[未找到文件错误],bash,shell,sed,Bash,Shell,Sed,我试图做一个非常简单的任务:我想用另一个单词替换CSV文件头中出现的一个单词。停下来 我还希望对我当前文件夹中的所有CSV执行此操作 如果我在命令行中运行它,它将非常有效 sed -i 's/CLOUD_RESOURCE_CONSUMPTION_RATE/CLOUD_RES_CONSUMPTION_RATE/' *.csv 但如果我在shell脚本中运行它,如下所示: #!/bin/bash sed -i 's/CLOUD_RESOURCE_CONSUMPTION_RATE/CLOUD_RES

我试图做一个非常简单的任务:我想用另一个单词替换CSV文件头中出现的一个单词。停下来

我还希望对我当前文件夹中的所有CSV执行此操作

如果我在命令行中运行它,它将非常有效

sed -i 's/CLOUD_RESOURCE_CONSUMPTION_RATE/CLOUD_RES_CONSUMPTION_RATE/' *.csv
但如果我在shell脚本中运行它,如下所示:

#!/bin/bash
sed -i 's/CLOUD_RESOURCE_CONSUMPTION_RATE/CLOUD_RES_CONSUMPTION_RATE/' *.csv
我得到一个错误:
没有这样的文件或目录
,这个文件出现在我的目录中


我做错了什么?我敢肯定这有点傻,但我想不出来。

你能这样写剧本吗

 sed -i 's/CLOUD_RESOURCE_CONSUMPTION_RATE/CLOUD_RES_CONSUMPTION_RATE/' <path to folder having csv files>/*.csv
sed-i's/CLOUD\u RESOURCE\u CONSUMPTION\u RATE/CLOUD\u RES\u CONSUMPTION\u RATE/'/*.csv

你能这样写脚本吗

 sed -i 's/CLOUD_RESOURCE_CONSUMPTION_RATE/CLOUD_RES_CONSUMPTION_RATE/' <path to folder having csv files>/*.csv
sed-i's/CLOUD\u RESOURCE\u CONSUMPTION\u RATE/CLOUD\u RES\u CONSUMPTION\u RATE/'/*.csv

我认为您的
bash
脚本中的
sed
行末尾有一个游离字符。脚本是使用Windows编辑器编写的吗?如果是这样的话,我怀疑最后会有一辆马车返回。如果我放一个回车,我可以复制你的错误

试着跑步

dos2unix <scriptname>
dos2unix
然后重新运行


如果
dos2unix
不起作用,那就不是回车,我建议使用
nano
vim
将整个脚本重新键入一个新文件,以删除杂散字符。

我想您的
bash
脚本中的
sed
行末尾有一个杂散字符。脚本是使用Windows编辑器编写的吗?如果是这样的话,我怀疑最后会有一辆马车返回。如果我放一个回车,我可以复制你的错误

试着跑步

dos2unix <scriptname>
dos2unix
然后重新运行


如果
dos2unix
不起作用,那就不是回车,我建议使用
nano
vim
将整个脚本重新输入到一个新文件中,以删除杂散的脚本。

我试过了。同样的结果。即使我键入一个文件名而不是我尝试的“*.csv”。同样的结果。即使我键入一个文件名而不是“*.csv”,您是否可以包含完整的错误消息?您是在Windows计算机上编写脚本的吗?听起来这两种情况下的工作目录是不同的。无论运行脚本时的工作目录是什么,它都不包含任何扩展名为
csv
的文件。请包含完整的错误消息好吗?您是在Windows计算机上编写脚本的吗?听起来这两种情况下的工作目录是不同的。无论运行脚本时工作目录是什么,它都不包含任何扩展名为
csv
的文件。我已经运行了
dos2unix
命令,但它运行得并不完美。非常感谢。正如你所说。我已经运行了
dos2unix
命令,但它运行得并不完美。非常感谢。