start_line
=
`
sed
-n
"/
${str}
/="
filename
`
after_count
=
3
end_line
=
$((
$start_line
+
$after_line
))
sed
-i
$start_line
','
$end_line
'd'
filename
sed
-i
"
${start_line}
,
${end_line}
d"
filename
本文主要讲解如何
删除
txt文件中的某一
行
内容,
sed
命令
更多详细内容参考《[
linux
常用
命令
(9):
sed
命令
(编辑/替换/
删除
文本)](https://blog.csdn.net/weixin_49114503/article/details/134919510)》
sed
命令
常用到的两个选项:
-i : 直接在文件上编辑 (edit files in place)
-e[默认选项]:只在
命令
行
输出,而文件不改变(add the script to the commands to be executed)
注:使用
sed
命令
可以使用 -i 或者 -e 选项(以下例子仅以-i举例)
(1)
sed
命令
删除
特定
行
号
删除
第N
行
:
sed
-i 'Nd' filename
删除
第N~M
行
:
sed
-i 'N,Md' filename #file的[N,M]
行
都被
删除
其中一个常见的用途是
删除
文件中的
特定
行
。本文将介绍如何使用
sed
命令
删除
文件中的
行
,并提供相应的源代码示例。总结起来,
sed
命令
是一个非常有用的工具,可以用于在
Linux
系统中
删除
文件中的
行
。通过使用不同的删
行
命令
和表达式,你可以根据具体的需求
删除
文件中的
特定
行
。现在,让我们通过一个实际的示例来演示如何使用
sed
命令
删除
文件中的
行
。我们将使用
sed
命令
删除
第 2
行
,并将修改后的结果保存到一个新文件 “newfile.txt” 中。这样,输出将被重定向到新文件中,而不会修改原始文件。
您可以使用 Vim 或 Nano 等文本编辑器,输入文件并
删除
所需的
行
,但是,这种方法不适合使用 bash 脚本进
行
自动化。
相反,您可以使用强大的
sed
命令
行
编辑器并
删除
符合
特定
条件的
行
,当然,您可以在
shell
脚本中使用
sed
。
从文件中
删除
第 n
行
想象一下,您必须
删除
文件中的第 7
行
号,您可以像这样使用
sed
命令
:
sed
-i '7d' filename
让我解释一下它是如何工作的:
-i:此选项启用就地编辑,默认情况下,
sed
只会显示输出。使用此-i选项,它会修改实际文件
3、使用
sed
命令
打开文本文件,并使用正则表达式匹配需要
删除
的多
行
。其中,pattern 是要匹配的正则表达式,N 是要
删除
的
行
数。这条
命令
会
删除
从包含 pattern 的
行
开始的 N
行
。其中的5和10表示要
删除
的
行
号的范围,d表示
删除
的
命令
,filename表示要操作的文件名。这将
删除
从包含 “hello” 的
行
开始的两
行
。
最后一
行
前添加一
行
sed
'$iHello World.'
sed
.txt #最后一
行
后添加一
行
sed
'$aHello World.'
sed
.txt#
删除
最后一
行
sed
'$d'
sed
.txt#
删除
包含Holen的
行
到最后一
行
,全删
sed
'/Holen/,$d'
sed
.txt#修改最后一
行
为"Hello World"
sed
'$cHello World.'
sed
.txt。