gpt4 book ai didi

linux - 编辑一个大文件的第一行和最后一行

转载 作者:太空狗 更新时间:2023-10-29 11:09:00 24 4
gpt4 key购买 nike

我想编辑一个非常大的文件 (~500GB) 中的第一行和最后一行。怎么能这样呢?例如,在第一行我有:

-flag </begin> 

我想省略“-flag”。我尝试使用 sed(如图所示)编辑第一行,但没有成功:

sed -i '1s/-flag <begin>/<begin>/g' file.txt 

最佳答案

我想不出您可以就地执行此操作的方法(我很想听听!)

几乎不是单行,但你可以试一试:

# substitute the first line and exit
sed '1s/-flag \(.*\)/\1/;q' file > new
# add the rest of the file (probably quicker than sed)
tail -n +2 file >> new
# cut off the last line of the file
truncate -s $(( $(stat -c "%s" new) - $(tail -n 1 new | wc -c) )) new
# substitute the last line
tail -n 1 file | sed 's/-flag \(.*\)/\1/' >> new

这假设您有一些工具,例如 truncate,并且您可以在 shell 中进行算术运算(我的 shell 是 bash)。

truncate -s 通过取总文件大小 stat -c "%s" 与最后一行的字节长度之差来删除最后一行.

我不确定您要从最后一行删除什么,但我认为它与第一行相同(从行首删除 -flag)。

欢迎提出修改建议。

关于linux - 编辑一个大文件的第一行和最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24146409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com