Možná budete chtít použít příkaz zkrátit:
truncate --size=1G test.txt
VELIKOST lze zadat jako bajty, KB, K, MB, M atd. Předpokládám, že požadovanou velikost můžete vypočítat ručně; pokud ne, pravděpodobně byste mohli použít příkaz stat k získání informací o aktuální velikosti souboru.
perl -we 'open( FILE, "< ./test.txt" ) && truncate( FILE, 8 ) && close(FILE);'
otevře soubor ke čtení. Chcete-li však soubor zkrátit, musíte jej upravit, takže popisovač souboru pouze pro čtení nebude fungovat. Musíte použít režim "upravit" ("+>"
).
Jako vedlejší problém mě vždy udivuje, když lidé nechají systémová volání tiše selhat a pak se ptají, co se stalo. nezbytné součástí diagnostiky problému je pohled na vytvořenou chybovou zprávu; i když tomu nerozumíte, velmi to usnadňuje život těm, které žádáte o pomoc.
O něco užitečnější by bylo následující:
perl -we 'open(FILE, "<", "./test.txt") or die "open: $!";
truncate(FILE, 8) or die "truncate: $!";
close(FILE);'
i když je pravda, že by to znamenalo pouze „neplatný argument“. Přesto je to užitečná informace, která vás mohla vést k závěru, že otevřený režim byl špatný (stejně jako u mě).
Můžete použít tail
vyjmout posledních 1000 bajtů, příklad:
tail -c 1000 soubor> soubor2
-c vypíše konečných 1000 bajtů souboru, další možnosti:
mužský ocas
Chcete-li nahradit původní soubor souborem, který jste právě vygenerovali:
mv soubor2