从文本文件中的制表符分隔列对文本进行分类

时间:2017-03-14 12:30:26

标签: python bash python-3.x filter classification

我有一个像this这样的文本文件:

        Education June 2007 Bachelors of Science in
Business Administration ORGANIZATION    ,
University of Phoenix   ORGANIZATION    .

        June 2005 Associate of Arts in
Liberal Arts    ORGANIZATION    ,
Victor Valley Junior College    ORGANIZATION    ,
Victorville LOCATION    ,
CA  LOCATION    .

我想检索前两列分隔的标签,所以我使用了这个:

cut -f 1-2 input.txt > output.txt

非常棒!

现在,我希望第二列中包含ORGANIZATION的行包含第一列中的特定单词,即每行,如果第二列显示ORGANIZATION,请检查第一列是否包含单词" University& #34;," School"," College"等等,如果是,请将其写入输出文件。

有没有办法通过修改下面的代码或在python中编写一个新代码来实现这一点?:

cut -f 2-3 input.txt > output.txt

输出应如下所示:

University of Phoenix   ORGANIZATION
Victor Valley Junior College    ORGANIZATION

2 个答案:

答案 0 :(得分:2)

 awk -F"/t" '$1 ~ /University|Business/ && $(NF-1) ~ /ORGANIZATION/' as
Business Administration ORGANIZATION    ,
University of Phoenix   ORGANIZATION    .

如果第一列包含大学 OR 商家 AND 最后一栏包含ORGANIZATION,则打印该行。这里是最后一列,但是它的第二列,实际的最后一列是comman / full-stop。

*您可以在此处更改列号以获得所需的结果。 这只是awk方式或写作条件。

答案 1 :(得分:0)

您可以使用sed

cut -f 1-2 file.txt | sed -n '/(Business|University).*ORGANIZATION/p' > output.txt

这应匹配包含Business或University和ORGANIZATION的所有行,并打印它们(p)。