2009-07-02 59 views
0

我想用grep来查找语料库中的所有标题,我想查找所有的东西,然后忽略所有的东西。有谁知道这是怎么做到的吗? (我可以得到一整行代码)Grep使用帮助

+0

你能提供一个输入和期望输出的例子吗? – 2009-07-02 13:45:06

回答

3

使用sed或awk。

一个sed例如:

sed -e '/^[^:]*$/d' -e 's/\(.*\):.*/\1/' filename 
1

如果你想要做的是显示匹配行的第一部分,那么你可以说

grep your_pattern | cut -d: -f 1 

,但如果你想不匹配对数据冒号后,你需要一个不同的工具。有可用的sedawkperlpython等。例如,Perl代码会是这个样子

perl -nle '($s) = split /:/; print $s if $s =~ /your_pattern/' 

或更长的脚本版本很多工具:

#!/usr/bin/perl 

use strict; 
use warnings; 

while (my $line = <>) { 
    my $substring = split /:/, $line; 
    if ($substring =~ /your_pattern/) { 
     print "$substring\n"; 
    } 
} 
1

(我不知道我完全理解你的问题)

你必须使用'grep'和'cut',一个解决方案(尽管很不完美)将是:

$ cat file | grep':'|切-f 1 -d ':'

0

的sed -n '/^$/q;/:/{s/:.*/:/;p;}'

这毕竟停头文件被处理。

编辑:有点改进版:

SED -n“/^$/Q;/^ [^:\ t]的{1,}:/ {S /:.*/:/,P ;}'