我需要删除2GB SQL转储的前42行。
我知道我可以使用以下方法查看前几行:
head -n 44 dump.sql
但是,无论如何都可以编辑或删除它们?
我需要删除2GB SQL转储的前42行。
我知道我可以使用以下方法查看前几行:
head -n 44 dump.sql
但是,无论如何都可以编辑或删除它们?
Answers:
如果您只想查看第43行上的行,可以使用
tail -n +43 dump.sql
该+
标志很重要-如果没有它,tail
它将打印最后 43行。或者用“ sed”
sed 1,42d dump.sql
如果您确实要从原始文件中删除前42行,则可以使用以下-i
选项使sed进行更改:
sed -i 1,42d dump.sql
sed -i 1,50000000d 17GigFile
创建一个sedXYZ
消耗更多千兆字节的临时文件。有没有临时文件的方法吗?
tail -n +43
和head -n 44
问题中提到的有什么区别?
这似乎是最简单的:
sed '1,42d' test.sql > test2.sql
从test.sql中删除第1-42行,并另存为test2.sql
只是添加此。如果您使用的是Mac,则需要添加备份扩展名。从这个帖子的答案。
sed -i '.bak' 1,42d dump.sql
由于sed
Linux和Mac之间存在差异,因此我决定使用tail -n +43 dump.sql > dump.sql
format。
tail
。我发现很多时候可以从您的答案中学到新东西。谢谢。