首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取特定列并将它们粘贴到另一个文本文件中。

提取特定列并将它们粘贴到另一个文本文件中。
EN

Ask Ubuntu用户
提问于 2018-07-02 15:54:31
回答 1查看 1.2K关注 0票数 1

我有两个文本文件。我需要复制一个文本文件的5-6-7列,并将这些列粘贴到另一个文本文件中。例如,文本文件的第一列如下;

text_1

代码语言:javascript
复制
E    GPS41  0  5.68026000000000E+08  1.09767623810000E+04 -1.66840300460000E+04  1.77051348440000E+04

text_2

代码语言:javascript
复制
E GPS41 568026000 0.000000000000000E+00 1.097676240456553E+04 -1.668403004627044E+04 1.770513486005421E+04 2.140299562139315E+00 -5.351523203487980E-01 -1.876979500368582E+00 1.714052588162549E-05 1.390618031795355E-05 8.605165964871206E-06 3.266367837880071E-09 3.392831966908295E-09 1.626218351208862E-09

我需要复制text_1的第5-6-7列,并按如下方式粘贴到text_2;

new_text

代码语言:javascript
复制
   E GPS41 568026000 0.000000000000000E+00 1.09767623810000E+04 -1.66840300460000E+04  1.77051348440000E+04 2.140299562139315E+00 -5.351523203487980E-01 -1.876979500368582E+00 1.714052588162549E-05 1.390618031795355E-05 8.605165964871206E-06 3.266367837880071E-09 3.392831966908295E-09 1.626218351208862E-09

注:这个问题与我以前的问题不同。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2018-07-02 16:16:57

如果您不关心在数据中保留特定数量的空白,这应该是可行的:

代码语言:javascript
复制
awk '(getline line < "text_1") > -1 {split(line,a); $5 = a[5]; $6 = a[6]; $7 = a[7]} 1' text_2 > new_text

例如。给定的

代码语言:javascript
复制
$ head text_{1,2}
==> text_1 <==
foo     bar  A B C D E
bar     baz  F G H I J

==> text_2 <==
        foo   bar  a b c d e f g h i j k l m
        bar   baz  f g h i j k l m n o p q r

然后

代码语言:javascript
复制
$ awk '(getline line < "text_1") > -1 {split(line,a); $5 = a[5]; $6 = a[6]; $7 = a[7]} 1' text_2
foo bar a b C D E f g h i j k l m
bar baz f g H I J k l m n o p q r

使用cutpaste的困难在于,至少有一个文件有不一致的空白分隔字段。您可以将其用于发布的输入,如下所示:

代码语言:javascript
复制
paste <(cut -d ' ' -f1-4 text_2) \
  <(tr -s '[:blank:]' ' ' < text_1 | cut -d ' ' -f5-7) \
  <(cut -d ' ' -f8- text_2) > new_text

例如。

代码语言:javascript
复制
$ paste <(cut -d ' ' -f1-4 text_2) \
    <(tr -s '[:blank:]' ' ' < text_1 | cut -d ' ' -f5-7) \
    <(cut -d ' ' -f8- text_2) > new_text

$ diff -ws new_text your_new_text 
Files new_text and your_new_text are identical
票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1051548

复制
相关文章

相似问题

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