linux - 如何使用 bash 命令删除文本文件中与多个模式匹配的行?
问题描述
我有一个文本文件,想删除以 A、T、G 或 C 开头的行。如果只是A
,我可以这样做sed '/A/d' infile.txt
,但是如何删除以 A、T、G 或 C 字母开头的行?
解决方案
你可以使用sed
:
sed '/^[ATGC]/d' infile.txt
或者grep
:
grep -v '^[ATGC]'
或bash
本身:
while read -r line; do [[ $line =~ ^[ATGC] ]] || echo "$line"; done < infile.txt
推荐阅读
- reactjs - 当应用程序在 React Native 中处于后台状态时清除间隔
- laravel - 保存 ID 两列 Laravel
- .net-core - .NET Core 2.1 Lambda 函数在运行时因 netstandard 的 FileNotFoundException 而失败
- android - 无法在通话 Android 中打开免提电话
- firebase - 如何在firebase中共享同一帐户的不同设备之间同步数据
- java - 用于检索项目的@GetMapping 给出了外键对象无限循环的响应
- python - NoneType' 对象不可下标
- pyspark - 如何在pyspark数据框中的一行中做regexp_replace?
- python-3.x - 从 python zipfile 中提取 zip 时出现密码错误
- python - 如何在 Python3 中从没有格式字符(反斜杠/撇号)的文本文件中导入行