在Linux中,你可以使用多种方法来删除文件的后几行,下面列出了几种常用的方法:
使用sed
(图片来源网络,侵删)
sed
是一个流编辑器,可以用来对文本进行编辑操作,以下是如何使用sed
删除文件的后N行:
sed -i '1,$(( $(wc -l < filename) N ))d' filename
filename
: 要处理的文件名。
N
: 要删除的行数。
使用tail
和重定向
你可以结合head
和tail
命令来删除文件的后N行:
(图片来源网络,侵删)
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
: 要处理的文件名。
(图片来源网络,侵删)
N
: 要删除的行数。
使用tac
和head
通过反转文件并删除前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