如何删除文件中包含特定字符串的行?

如何删除文件中包含特定字符串的行?

如何删除文件(主机)中包含“adf.ly”字符串的行?

答案1

使用sed

运行此命令:

sed -i '/adf\.ly/d' inputfile 

man sed

   -i[SUFFIX], --in-place[=SUFFIX]
      edit files in place (makes backup if extension supplied)

使用 grep

感谢@kos 的注释:

grep -v "ad\.fly" inputFile  > outputfile

答案2

下面将删除包含“adf.ly”的行filename.txt

sed -i '/adf\.ly/d' filename.txt

删除行之前,请使用上述命令-i进行测试。

答案3

使用awk(感谢 terdon 提供的缩短版本):

< inputfile awk '!/adf\.ly/' > outputfile
  • < inputfileinputfile:将的内容重定向到awkstdin
  • > outputfileawk:将 的内容重定向stdoutoutputfile

awk命令分解:

  • !/adf\.ly/adf\.ly:如果不匹配正则表达式,则打印记录

使用 Perl(感谢 terdon 提供的简化版本):

< inputfile perl -ne '/adf\.ly/||print' > outputfile
  • -nwhile (<>) {[...]}在脚本周围放置一个循环
  • -e:从参数中读取脚本

Perl 命令分解:

  • /:开始模式
  • adf\.ly:匹配adf\.ly字符串
  • /停止模式
  • ||:仅当模式与行不匹配时才执行以下命令
  • print:打印该行

答案4

您可以使用标准文本编辑器,ed

printf '%s\n' 'g/adf\.ly/d' w q | ed file.txt

相关内容