unix - 如何在单个代码行中包含多个搜索字符串
问题描述
我有一个代码在文件中搜索 IN 字符串,然后将这些记录放在我在下面使用的不同文件中:
cat ${ALL_CARDS} | grep -v ' IN ' | awk '{print $1}' > ${NO_EXEC_CARDS}
但是现在我必须包括多个搜索字符串以及像 NE 和 ON 这样的 IN 所以如何在这个代码行中也包括这些
解决方案
cat | grep | awk
是一种反模式。此外,仅使用awk
会使您的问题变得微不足道:
awk '! /IN/ && ! /ON/ && ! /NE/ {print $1}' "$ALL_CARDS" > "$NO_EXEC_CARDS"
您的 中有一些额外的空格grep
,所以也许您想要:
awk '! / IN / && ! / ON / && ! / NE / {print $1}'
awk
是为此而精心设计的。它只是读取每一行,如果表达式不匹配“IN”或“ON”或“NE”,则执行该操作。你也可以这样写:
awk '! (/ IN / || / ON / || / NE /) {print $1}'
推荐阅读
- reactjs - 如何在 Map Function React 或 react-native 中禁用特定的 TextInput 字段
- python - 如何根据熊猫中另一列行的值合并同一列中的行值
- javascript - React:使用可滚动元素更改状态和范围输入值
- panel-data - 具有个体和#event 序列(非固定时间)的数据是否被视为面板数据?
- javascript - 为什么 cors-anywhere 代理出现 404 错误?
- knex.js - 如何在 knexjs 中运行 sql,如“显示创建表 xxx”
- python - 如何同时控制两个不同的QGraphicsView
- java - 我的应用程序在资源文件夹中有 application.yml 但是 Spring boot 应用程序抱怨找不到 application.properties
- android - Flutter 布局样式根据 api 响应变化
- python - 安装 requests 包会破坏 anaconda 安装