Я пытался скопировать содержимое огромного файла (10 ГБ) в другой, пропустив первую строку (как в head -n1). Я пробовал несколько способов головы, хвоста, awk и sed. Устанавливается с помощью tail -n+2 > ./xab.1

см. ссылку1 ссылку2 ссылку3. Но обработка занимает время журнала. Больше, чем это требуется для 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`

0