您可以使用 Vim 或 Nano 等文本编辑器,输入文件并删除所需的行,但是,这种方法不适合使用 bash 脚本进行自动化。
相反,您可以使用强大的 sed 命令行编辑器并删除符合特定条件的行,当然,您可以在 shell 脚本中使用 sed。
从文件中删除第 n 行
想象一下,您必须删除文件中的第 7 行号,您可以像这样使用 sed 命令:
sed -i '7d' filename
让我解释一下它是如何工作的:
- -i:此选项启用就地编辑,默认情况下,sed 只会显示输出。使用此-i选项,它会修改实际文件而不将其显示在显示器上。
- 7d: 这里 7 是行号,d指示删除行。
- filename: 这是你要修改的文件,如果文件位于其他目录中,您还可以提供绝对或相对路径。
让我用一个真实的例子来展示,这是一个名为 wljslmz.txt 的示例文本文件:
学技术 上网络技术联盟站 找教程 也上网络技术联盟站 涨知识 还上网络技术联盟站 加工资 必须上网络技术联盟站
要从此文件中删除第 4 行,我使用:
sed '4d' agatha.txt
这将导致以下显示删除了“也上网络技术联盟站”行:
学技术 上网络技术联盟站 找教程 涨知识 还上网络技术联盟站 加工资 必须上网络技术联盟站
现在,假设您想在 Linux 命令行中删除文件的第一行,像这样使用 sed:
sed -i '1d' filename
“
如果您想在不修改文件本身的情况下查看操作结果,请不要使用-ised 命令的选项。
”
使用 sed 删除最后一行
您学会了删除特定行,但如果您需要删除最后一行怎么办?
您可能总是使用 wc 命令获取文件中的总行数,并将此数字与 sed 一起使用。但是,sed 有一种删除文件最后一行的专用方法,您现在不必再担心文件的数量了。
sed -i '$d' filename.txt
删除一系列行
与您之前看到的类似,您也可以从文件中删除一系列行。
假设您必须删除从 11 到 15 的行,您可以提供这样的范围:
sed -i '11,15d' filename
请注意,它还将删除第 11 行和第 15 行,而不仅仅是位于它们之间的行。
删除包含字符串的行
您还可以使用 sed 删除包含给定字符串或匹配特定模式的所有行。
下面的命令将删除所有包含单词 ‘string’ 的行:
sed -i '/string/d' filename
请注意,这是一个区分大小写的搜索,您也可以使用正则表达式模式而不是常规字符串。
删除以单词开头的行
如果要删除以特定单词或字母开头的所有行,只需提供如下正则表达式模式:
sed -i '/^word/d' filename
额外提示:删除所有空行
在结束本文之前,让我快速分享一下如何使用 sed 删除所有空行:
sed -i '/^$/d' filename
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/17143.html