仅使用unix命令进行文本操作

时间:2016-11-22 18:34:54

标签: shell parsing unix text-manipulation

我有一个任务,我需要解析文件并提取信息。我可以使用bash轻松完成这项工作,但我必须通过unix命令完成它。

例如,我有一个类似于以下内容的文件:

 Set<tab>one<tab>two<tab>three
 Set<tab>four<tab>five<tab>six
 ENDSET

 Set<tab>four<tab>two<tab>nine
 ENDSET

 Set<tab>one<tab>one<tab>one
 Set<tab>two<tab>two<tab>two
 ENDSET

 ...

等等。我希望能够提取一定数量的集合,比如前10个。另外,我希望能够从列中提取信息。

再一次,使用bash脚本执行操作是一件微不足道的事情,但我不确定如何仅使用unix命令执行此操作。我可以在shell脚本中将命令组合在一起,但同样只能将unix命令组合在一起。

1 个答案:

答案 0 :(得分:0)

如果没有输出示例,很难知道您的目标,但无论如何,您可以使用的一个UNIX命令是AWK。

示例:

从数据样本中提取2 设置(不包含“ENDSET”或空行):

ipython

提取3 设置并仅打印第2列(注意第1列始终为“设置”):

$ awk '/ENDSET/{ if(++count==2) exit(0);next; }NF{print}' file.txt
Set     one     two     three
Set     four    five    six
Set     four    two     nine

依此类推......(更多信息:$ awk '/ENDSET/{ if(++count==3) exit(0);next; }$2{print $2}' file.txt two five two one two