更改多个文件的内容

更改多个文件的内容

我有一个名为list.txt的文件,其内容如下:

paswd.c
acnt.c
control.c
... 

(其余省略)

我想做一些类似伪代码的事情:

point to first line of list.txt;
while (list.txt not reaching end of file)
{
    get string from line;
    find -name 'string';
    if (find)
    {
        delete first 7 lines in file;
    }
    advance one line;
}

我相信结合寻找,参数sed可以实现这一点。

答案1

你可以尝试类似的东西

$ xargs -a list.txt -I myfilename find . -name myfilename -exec sed 1,7d '{}' \;
  • xargs 读取 list.txt 中的文件名,并将myfilename模式替换为 find 命令中读取的文件名
  • find 将找到您的文件并将其传递给 sed 删除前 7 行(如果少于 7 行则清空文件)

相关内容