거대한 파일 (10GB)의 내용을 첫 번째 줄을 건너 뛰는 다른 파일로 복사하려고했습니다 (에서와 같이 head -n1
). 나는 머리, 꼬리, awk 및 sed의 여러 가지 방법을 시도했습니다. 사용에 정착tail -n+2 > ./xab.1
link1 link2 link3을 참조하십시오 . 그러나 처리에 로그 시간이 걸립니다. 그것보다 더 cp
.
내용을 맹목적으로 복사하고 싶습니다. 그래서 나는 dd
일을 할 것이라고 생각 하지만 그것을 구현하지 못했습니다. 어떤 도움?
글쎄, 더 많은 컨텍스트를 제공하기 위해 파일은 CSV이므로 dd if=/dev/zero of=/path/to/file bs=1 seek=1 count=<<length(head -n1 /path/to/file)>> conv=notrunc
작동 한다고 생각
합니다.
그러나 어떻게 작동하게합니까 ??
편집 : 그래서 여기까지 내가 지금까지 생각해 낸 것이 있습니다 (예, 몇 가지 기록을 잃어 버릴 것입니다.하지만 중요하지 않습니다)
#!/bin/bash
echo "Initiating xaa." `date`
head -n3 /stage/csv/dev/data/csv_huge/xaa > /stage/csv/dev/data/csv_huge/csv/header
tail -n3 /stage/csv/dev/data/csv_huge/xbc > /stage/csv/dev/data/csv_huge/csv/trailer
sed -i '$ d' /stage/csv/dev/data/csv_huge/xaa
cat /stage/csv/dev/data/csv_huge/csv/trailer >> /stage/csv/dev/data/csv_huge/xaa
mv /stage/csv/dev/data/csv_huge/xaa /stage/csv/dev/data/csv_huge/csv/xaa
echo "Completed xaa." `date`
sed -i 1d /stage/csv/dev/data/csv_huge/xab
sed -i '$ d' /stage/csv/dev/data/csv_huge/xab
cat /stage/csv/dev/data/csv_huge/csv/header /stage/csv/dev/data/csv_huge/xab > /stage/csv/dev/data/csv_huge/csv/xab
cat /stage/csv/dev/data/csv_huge/csv/trailer >> /stage/csv/dev/data/csv_huge/csv/xab
rm -f /stage/csv/dev/data/csv_huge/xab
echo "Completed xab." `date`
sed -i 1d /stage/csv/dev/data/csv_huge/xbc
cat /stage/csv/dev/data/csv_huge/csv/header /stage/csv/dev/data/csv_huge/xbc > /stage/csv/dev/data/csv_huge/csv/xbc
echo "Completed xbc." `date`
@FrankThomas 확실히 "파일을 cp로 만든 다음 최상위 줄을 삭제하십시오"를 선호합니다. 그러나 10GB 파일에 대해 그렇게하는 방법은 나에게 문제가됩니다. 어떤 생각이 떠오르십니까?
—
Jimson Kannanthara James
가장 인기있는 아이디어를 너무 느리게 거부했지만 여기에는 몇 가지 다른 아이디어가 있습니다. superuser.com/questions/284258/remove-first-line-in-bash
—
Frank Thomas
superuser.com/questions/284258/remove-first-line-in-bash- 사용법에 대한 답변 추가
—
Hannu
dd
시원했던 @FrankThomas. 그 의견을 바탕으로 내가 생각해 낸 내용으로 편집 된 질문을 참조하십시오. 당신의 생각을 알려주세요.
—
Jimson Kannanthara James
dd
디스크를 파괴 하는 매우 위험한 사용으로 보입니다 .if
/ dev / zero로 정의하는 것도 좋지 않습니다. 또한 헤드 라인이없는 파일의 길이가 아니라 길이가 첫 번째 라인이됩니다. 어쨌든, 이것은 시간이 걸릴 것으로 예상해야하며 TBH는 파일을 cp로 만든 다음 최상위 줄을 삭제하지 않아야 할 이유가 없습니다. 실용적이지 않은 이유로이 모든 것을하고 있다고 가정해야합니다.