我有一个 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.csv
、two .csv
等。您可以直接使用这些作为sed
命令的输入。-i
用于内联更改,sed 将为您进行替换并更新文件。不需要输出重定向。在您编写的代码中,我猜您错过了
sed
命令的任何输入
关于for-loop - 使用 sed 遍历文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40636899/