linux - 尝试使用 grep 查找内容,然后输出该行的不同部分

标签 linux search grep output

例如,我正在搜索这样的一行:

颜色 asdf

然后我使用 grep 来查找该行,例如 grep asdf file.txt 我将如何显示颜色?学习 Linux 很难。

最佳答案

使用命令行工具 sed,您可以使用正则表达式替换字符串:

echo "Color asdf" | sed 's/\([^ ]*\).*/\1/'

这部分:\([^ ]*\).* 是正则表达式。正则表达式的第一部分:[^ ]*,尽可能多次匹配除空格以外的任何字符,以及 \(\)< 之间的字符 被捕获在变量 \1 中。然后,您还将字符串的其余部分与 .* 匹配,并将所有这些替换为仅由 \([^ ]*\) 捕获的第一个单词在 sed 命令的替换部分使用 \1

这里有一些关于 sed 的更多信息: http://linux.about.com/od/commands/a/Example-Uses-Of-Sed-Cmdsedxa.htm

关于linux - 尝试使用 grep 查找内容,然后输出该行的不同部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28522069/

相关文章:

regex - 当我尝试提取正则表达式的一部分时,为什么 sed 会失败?

javascript - HTML 表格搜索单个单元格

search - 如何在 Vim 中搜索打开的缓冲区?

regex - 在文件和输出文件名中搜索具有特定文本的行(文件命令和 grep)

linux - grep 并返回 href 的内容(如果匹配)?

linux - 查找句子特定长度的 egrep 正则表达式

c++ - 查看大错误输出的顶行

linux - 旧版本的 salt-minion 中不存在 http 代理设置

linux - 基于字符串字段的 if 语句

html - 我可以制作一个 HTML5 可更新数据库来进行本地搜索吗?