여러 파일의 내용 변경

여러 파일의 내용 변경

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

관련 정보