linux - 如何使用 awk 仅匹配给定字符串而不匹配其他任何内容
问题描述
我有这个文件包含这些内容
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
我awk
只需要ID="centos"
一部分。我试过了:
awk /ID=/{print} file.txt
但这给出了输出ID="centos"
和VERSION_ID="7"
如何仅awk
在模式中给出字符串?
解决方案
您能否尝试关注(grep
也可以使用,因为问题是awk
这样的)。
awk '/^ID="/' Input_file
- 使用锚
^
来检查行是否从ID=
. - 然后添加
ID="
以确保它只匹配ID=
字符串而不是其他任何东西。 - 为什么字符串
VERSION_ID=
不会被匹配,因为它不是从ID
包含 ID 开始的,这就是我们^
在条件检查中使用的原因。 awk
适用于pattern
/condition
then的方法,action
所以这里没有提到任何动作,这就是为什么会发生当前行的默认动作打印。
推荐阅读
- javascript - Babel 没有在 *.mjs 文件中转换 `class`
- python - 如何将索引添加到 Python 中的列表列表
- scala - akka 流不消耗,只记录 WakeupTimeout
- vue.js - axios 拦截器与 vuejs 自定义组件集成,用于以通用方式显示错误消息
- web-services - Amadeus Cancel PNR XML 返回空响应
- ios - 取消按钮无法在 GMSAutocompleteViewController 中显示
- python - Python:按时间间隔分组
- symfony - ButtonType Symfony 的 isClicked()
- java - RecyclerView 带有过滤器列表的可点击对象
- apache - Httpd.conf 重定向到外部 url apache tomcat