Linux에서 dd를 사용하여 첫 번째 줄을 건너 뛰는 큰 파일 복사


0

거대한 파일 (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`

이것은 dd디스크를 파괴 하는 매우 위험한 사용으로 보입니다 . if/ dev / zero로 정의하는 것도 좋지 않습니다. 또한 헤드 라인이없는 파일의 길이가 아니라 길이가 첫 번째 라인이됩니다. 어쨌든, 이것은 시간이 걸릴 것으로 예상해야하며 TBH는 파일을 cp로 만든 다음 최상위 줄을 삭제하지 않아야 할 이유가 없습니다. 실용적이지 않은 이유로이 모든 것을하고 있다고 가정해야합니다.
Frank Thomas

@FrankThomas 확실히 "파일을 cp로 만든 다음 최상위 줄을 삭제하십시오"를 선호합니다. 그러나 10GB 파일에 대해 그렇게하는 방법은 나에게 문제가됩니다. 어떤 생각이 떠오르십니까?
Jimson Kannanthara James

가장 인기있는 아이디어를 너무 느리게 거부했지만 여기에는 몇 가지 다른 아이디어가 있습니다. superuser.com/questions/284258/remove-first-line-in-bash
Frank Thomas


시원했던 @FrankThomas. 그 의견을 바탕으로 내가 생각해 낸 내용으로 편집 된 질문을 참조하십시오. 당신의 생각을 알려주세요.
Jimson Kannanthara James
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.