我有一个名为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 行则清空文件)