for-loop - 使用 sed 遍历文件夹中的文件

标签 for-loop sed

我有一个 csv 文件列表,想使用 for 循环来编辑每个文件的内容。我想用 sed 来做到这一点。我有这个 sed 命令,在一个文件上测试它时效果很好:

sed 's/[ "-]//g'

所以现在我想对文件夹中的每个文件执行此命令。我已经尝试过,但到目前为止还没有运气:

for i in *.csv; do sed 's/[ "-]//g' > $i.csv; done

我希望他用 sed 执行的编辑覆盖每个文件。 sed 命令删除所有空格、“和 '-' 字符。

最佳答案

小改动,

for i in *.csv
do 
    sed -i 's/[ "-]//g' "$i"
done

更改

  • 当您迭代 for 时,您将获得 $i 中的文件名,例如 one.csvtwo .csv 等。您可以直接使用这些作为 sed 命令的输入。

  • -i 用于内联更改,sed 将为您进行替换并更新文件。不需要输出重定向。

  • 在您编写的代码中,我猜您错过了 sed 命令的任何输入

关于for-loop - 使用 sed 遍历文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40636899/

相关文章:

c# - 如何解决这个奇怪的多循环场景(Java 或 C#)?

c++ - 有三角波函数吗?

linux - 使用单独文件中的 sed

shell - sed 中的 "/i"标志是什么?

regex - 使用 Sed 获取开始字符和结束字符之间的所有字符

bash - 将 sudo 与 for 循环一起使用

c++ - std::list<std::reference_wrapper<T>> 的基于概念限制范围的 for 循环

python - 如何生成不同概率的骰子?

bash - 选择除文本 block 之外的所有内容

正则表达式在 OS X 终端中批量重命名文件