上一篇                     
               
			  linux如何删除行
- Linux
- 2025-07-12
- 4208
 nux删除行可用sed命令,如
 
 
sed -i '行号d' 文件名,或用vi/vim编辑器定位后按dd键删除
Linux系统中,删除行的操作可以通过多种命令实现,具体取决于你使用的工具和需求,以下是几种常见的方法:
使用sed命令
 
sed是一个强大的流编辑器,可以用来处理文本文件,它支持直接修改文件内容或输出到标准输出。
| 操作 | 命令示例 | 说明 | 
|---|---|---|
| 删除指定行 | sed -i '5d' file.txt | 删除文件 file.txt的第5行,-i表示直接修改文件。 | 
| 删除包含特定文本的行 | sed -i '/pattern/d' file.txt | 删除所有包含 pattern的行。 | 
| 删除空白行 | sed -i '/^$/d' file.txt | 删除所有空白行, ^$匹配空行。 | 
| 删除行范围 | sed -i '3,6d' file.txt | 删除第3行到第6行。 | 
| 删除不连续的多行 | sed -i '3d;5d' file.txt | 同时删除第3行和第5行。 | 
使用awk命令
 
awk是一个文本处理工具,适合按条件过滤行。
| 操作 | 命令示例 | 说明 | 
|---|---|---|
| 删除包含特定文本的行 | awk '!/pattern/' file.txt > tmp && mv tmp file.txt | 将不包含 pattern的行写入临时文件,然后替换原文件。 | 
| 删除指定行号 | awk 'NR!=5' file.txt > tmp && mv tmp file.txt | 删除第5行, NR表示当前行号。 | 
使用grep命令
 
grep用于搜索文本,配合-v参数可以反向匹配。

| 操作 | 命令示例 | 说明 | 
|---|---|---|
| 删除包含特定文本的行 | grep -v 'pattern' file.txt > tmp && mv tmp file.txt | 将不包含 pattern的行写入临时文件,然后替换原文件。 | 
使用vi/vim编辑器
 
vi/vim是Linux中常用的文本编辑器,适合手动编辑。
- 打开文件:vi file.txt
- 删除单行: 
  - 进入命令模式(按Esc),输入行号后按dd,删除第5行:5dd。
- 或者在光标所在行按dd删除当前行。
 
- 进入命令模式(按
- 删除多行: 
  - 输入范围命令,删除第3行到第5行:3,5d。
 
- 输入范围命令,删除第3行到第5行:
- 保存并退出:输入:wq并按回车。
使用ex命令
 
ex是vi的命令行模式,适合批量操作。
| 操作 | 命令示例 | 说明 | 
|---|---|---|
| 删除指定行范围 | ex -s -c '3,5d' -c 'wq' file.txt | 删除第3行到第5行并保存。 | 
删除当前终端中的整行
在终端中,如果需要快速删除当前输入行的内容,可以使用以下快捷键:

- Ctrl + U:删除从光标位置到行首的所有内容(相当于清空整行)。
- Ctrl + D:在某些终端中,按此快捷键会删除当前行(需确保光标在行首)。
FAQs
如何备份原文件再删除行?
如果不想直接修改原文件,可以将结果重定向到新文件。
sed '5d' file.txt > newfile.txt
这样会保留原文件,并将删除第5行的结果写入newfile.txt。
如何删除文件中所有以“#”开头的注释行?
使用sed结合正则表达式:

sed -i '/^#/d' file.txt
这条命令会删除所有以开头的行
 
  
			