循环sed -i删除。

时间:2017-09-22 22:13:05

标签: bash sed

我有一个名为foo.file的文件。 它有很多东西。我想摆脱两行包含 这些关键字。 employee.csv和instrument.csv。 sed -I标志是sed命令中的强大功能。我喜欢它用于编辑文件。

当我在命令行格式中使用时,它工作得很好

 sed -i '/employee.csv/d' foo.file

但是当我尝试循环关键字时。它不起作用。

 for i in employee.csv instrument.csv ;
 do
 sed -i '/"$i"/d' foo.file ;
 done

2 个答案:

答案 0 :(得分:3)

for i in "employee.csv" "instrument.csv"; do
    sed -i '/'"$i"'/d' foo.file;
done

您也可以使用sed:

的正则表达式
sed -ri '/(employee|instrument).csv/d' foo.file;

答案 1 :(得分:2)

使用sed进行就地替换更改:

for i in employee.csv instrument.csv; do
    do sed -i "s/$i//g" foo.file;
done