다음 내용이 포함된 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줄 미만인 경우 파일을 비웁니다).