대용량(10M 라인) 파일의 효율적인 헤더 교체?

대용량(10M 라인) 파일의 효율적인 헤더 교체?

대용량 파일의 열 헤더 이름을 바꾸려고 하는데 가장 효율적인 방법을 알고 싶습니다. 파일 길이는 10M~50M 라인이고, 각 라인은 약 100자 정도이며, 총 10개의 컬럼이 있습니다.

누군가 비슷한 질문을 하여 첫 번째 줄을 삭제했는데 가장 좋은 대답은 "꼬리"와 관련이 있었습니다.sed를 사용하여 대용량 파일 헤더를 효율적으로 제거하시겠습니까?

내 추측은 다음과 같습니다

bash-4.2$ seq -w 100000000 1 125000000 > bigfile.txt
bash-4.2$ tail -n +2 bigfile.txt > bigfile.tail && sed '1 s/^/This is my first line\n/' bigfile.tail > bigfile.new && mv -f bigfile.new bigfile.txt;

더 빠른 방법이 있나요?

답변1

  1. 새 헤더를 새 파일로 출력합니다 printf "This is my first line\n > bigfile.new.
  2. 나머지를 제공하려면 추가 리디렉션을 사용하십시오 tail.bigfile>>

참고: tail +2"GNUism" - 대부분의 Linux 배포판에서 작동하지만 POSIX와 호환되지 않으며 다른 Unices에서는 작동하지 않을 수 있습니다.

답변2

Linux를 가정하면 bash질문의 코드보다 빠를 수 있습니다.

(echo "New headers";tail +2 bigfile.txt) > newbigfile.txt && mv newbigfile.txt bigfile.txt

관련 정보