我正在尝试执行一项非常简单的任务:我想用另一个单词替换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
我收到错误:No such file or directory
,此文件显示在我的目录中。
我做错了什么?我确定它有些愚蠢,但我无法弄清楚。
答案 0 :(得分:2)
我认为你的sed
脚本中bash
行的末尾有一个迷路字符。是使用Windows编辑器编写的脚本吗?如果是这样,我怀疑最后有一个回车。如果我把回车放进去,我可以复制你的错误。
尝试运行
dos2unix <scriptname>
并重新开始运行。
如果dos2unix
无法正常工作,则表示不回车,我建议您使用nano
或{{1}将整个脚本重新输入新文件移除迷路。
答案 1 :(得分:1)
你能写这样的剧本
吗? sed -i 's/CLOUD_RESOURCE_CONSUMPTION_RATE/CLOUD_RES_CONSUMPTION_RATE/' <path to folder having csv files>/*.csv