首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grep命令问题

Grep命令问题
EN

Stack Overflow用户
提问于 2012-02-12 18:52:31
回答 3查看 133关注 0票数 0

如何使用一个Unix命令打印公司JMT的名称(并且只打印名称)?斯堪的纳维亚字母有问题吗?通过键入

代码语言:javascript
复制
grep JMT url | egrep --only-matching '[^[:digit:]]+'

我仍然有公司名称和+标记,我应该去掉它们。

我将非常感谢你的帮助,因为我是新手。

代码语言:javascript
复制
   [Name]                      [Company]

1. Matti Meikäläinen              TTK              36.9
2. Teemu Aho                      JMT              37.0  +0.1
3. Kaarna Käyrä                   JMT              37.1  +0.1
4. Maija Meheväv                  TTK              37.2  +0.1
5. Giglio Matjusha                JMT              37.3  +0.1
EN

回答 3

Stack Overflow用户

发布于 2012-02-12 19:09:00

使用而不是grep,搜索文本和打印匹配行中的其他详细信息要容易得多。例如:

代码语言:javascript
复制
% echo '[Name] [Company]

Matti Meikäläinen TTK 36.9
Teemu Aho JMT 37.0 +0.1
Kaarna Käyrä JMT 37.1 +0.1
Maija Meheväv TTK 37.2 +0.1
Giglio Matjusha JMT 37.3 +0.1' | awk '$3 == "JMT" { print $1, $2 }'
Teemu Aho
Kaarna Käyrä
Giglio Matjusha

这将检查第三个"word“是否为"JMT”,如果是,则打印第一个和第二个单词。不需要正则表达式(在这种情况下)。

票数 2
EN

Stack Overflow用户

发布于 2012-02-12 19:27:17

把你的输出想象成一个文件(用来抑制奇数符号)

代码语言:javascript
复制
$> cat ./text 
[Name] [Company]

Matti Meikäläinen TTK 36.9
Teemu Aho JMT 37.0 +0.1
Kaarna Käyrä JMT 37.1 +0.1
Maija Meheväv TTK 37.2 +0.1
Giglio Matjusha JMT 37.3 +0.1

所以解决方案是

代码语言:javascript
复制
$> cat ./text | grep --perl-regexp --only-matching ".*(?=JMT)"
Teemu Aho 
Kaarna Käyrä 
Giglio Matjusha 

如果你想去掉名字前面的数字:

代码语言:javascript
复制
$> cat ./text | grep --perl-regexp --only-matching "[^0-9]*(?=JMT)"
Teemu Aho 
Kaarna Käyrä 
Giglio Matjusha 

我们在这里使用的是来自perl的regexp扩展,从那里我们得到了lookahead运算符(有一个很好的link,其中包含一些关于它的信息)。

票数 1
EN

Stack Overflow用户

发布于 2012-02-12 19:29:55

尝试对grep使用-o标志,以便仅打印匹配项(如--only-matching),并为perl regex添加-P标志:

代码语言:javascript
复制
grep -o -P '\b[^\d]+\bJMT\b' <your_file_name>

提供:

代码语言:javascript
复制
Teemu Aho JMT
Kaarna Käyrä JMT
Giglio Matjusha JMT

这确实假设"JMT“是公司名称的最后一个单词。如果不是,只需在末尾添加以下[^\d+]\b ( \b确保不包括尾随/前导空格)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9248224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档