如何在 Linux 中删除文件的最后几行内容?

在Linux中,你可以使用多种方法来删除文件的后几行,下面列出了几种常用的方法:

使用sed

如何在 Linux 中删除文件的最后几行内容?插图1
(图片来源网络,侵删)

sed 是一个流编辑器,可以用来对文本进行编辑操作,以下是如何使用sed 删除文件的后N行:

sed -i '1,$(( $(wc -l < filename) N ))d' filename

filename: 要处理的文件名。

N: 要删除的行数。

使用tail 和重定向

你可以结合headtail 命令来删除文件的后N行:

如何在 Linux 中删除文件的最后几行内容?插图3
(图片来源网络,侵删)
head -n $(( $(wc -l < filename) N )) filename > temp.txt && mv temp.txt filename

filename: 要处理的文件名。

N: 要删除的行数。

使用awk

awk 是一个强大的文本处理工具,也可以用来删除文件的后N行:

awk 'NR<=$(( $(wc -l < filename) N ))' filename > temp.txt && mv temp.txt filename

filename: 要处理的文件名。

如何在 Linux 中删除文件的最后几行内容?插图5
(图片来源网络,侵删)

N: 要删除的行数。

使用tachead

通过反转文件并删除前N行,然后再反转回来,可以达到删除后N行的效果:

tac filename | head -n $(( $(wc -l < filename) N )) | tac > temp.txt && mv temp.txt filename

filename: 要处理的文件名。

N: 要删除的行数。

方法 命令 说明
sed sed -i '1,$(( $(wc -l 使用sed 直接编辑文件
tail head -n $(( $(wc -l temp.txt && mv temp.txt filename 结合head,tail 和重定向
awk awk 'NR temp.txt && mv temp.txt filename 使用awk
tac tac filename head -n $(( $(wc -l tac > temp.txt && mv temp.txt filename 结合tac,head 和重定向

选择适合你的方法来删除文件的后几行。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/57961.html

小末小末
上一篇 2024年9月24日 13:58
下一篇 2024年9月24日 14:04

相关推荐