【问题标题】:Table Manipulation / Splitting to different files表格操作/拆分到不同的文件
【发布时间】:2020-11-06 19:45:30
【问题描述】:

想将下表的拆分更改为其他文件。

    Measure1    Measure2    Measure3    Measure4
Boy1    A1  B1  C1  D1
Boy2    A2  B2  C2  D2
Boy3    A3  B3  C3  D3
Boy4    A4  B4  C4  D4
Boy5    A5  B5  C5  D5
Boy6    A6  B6  C6  D6
Boy7    A7  B7  C7  D7
Boy8    A8  B8  C8  D8
Boy9    A9  B9  C9  D9
Boy10   A10 B10 C10 D10
BoyN    AN  BN  CN  DN

一共要生成N个文件,其中:-

文件 1 名为 Boy1。

A1  C1
B1  D1

文件 2 名为 Boy2。

A2  C2
B2  D2

文件 3 名为 Boy3。

A3  C3
B3  D3

等等。

我尝试过的唯一方法是使用 R,但我想使用 Unix 平台来做。

R方法:

Boy1=matrix(data=c(A1,B1,C1,D1), nrow=2, ncol=2)
Boy2=matrix(data=c(A2,B2,C2,D2), nrow=2, ncol=2)
.
.
.

【问题讨论】:

  • 文件 Boy1 中的字段分隔符是什么?

标签: python arrays perl awk


【解决方案1】:

使用 awk:

awk 'NR>1 {print $2,$4 RS $3,$5 >$1; close($1)}' file

或使用制表符作为输出字段分隔符:

awk 'NR>1 {print $2,$4 RS $3,$5 >$1; close($1)}' OFS='\t' file

见:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR

【讨论】:

  • 为了有点迂腐,我会将NR 更改为FNR 并将RS 更改为ORS。这允许用户根据需要灵活地更改ORS
  • 是的,您可以切换到FNRORS 是个好主意。
  • 我不会费心将NR 更改为FNR,因为它只是一个输入文件,但我肯定会将RS 更改为ORS
猜你喜欢
  • 2018-07-02
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多