UNIX-将文件拆分为多个文件的命令,每一行中每3个唯一值的所有行

unixlearner

考虑下面的输入文件。输入文件:

C1|C2|C3|C4|C5|C6
0|1|2|3|0-1-2-3|4
0|2|2|4|0-1-2-3|5
0|1|2|3|1-3-2-4|4
0|1|2|3|1-1-3-4|4
0|1|2|3|1-1-3-4|5
0|1|2|3|4-5-2-6|4
0|1|2|3|4-5-2-6|6
0|4|5|3|7-4-2-4|4
0|1|2|3|7-4-2-5|4
0|1|2|3|7-4-2-5|5
0|1|2|3|7-4-2-5|6
0|1|2|3|7-5-2-6|5

基于字段5,例如第一条记录中的0-1-2-3,预计输出拆分文件如下拆分文件1所示:

C1|C2|C3|C4|C5|C6
0|1|2|3|0-1-2-3|4
0|2|2|4|0-1-2-3|5
0|1|2|3|1-3-2-4|4
0|1|2|3|1-1-3-4|4
0|1|2|3|1-1-3-4|5

分割档2:

C1|C2|C3|C4|C5|C6
0|1|2|3|4-5-2-6|4
0|1|2|3|4-5-2-6|6
0|4|5|3|7-4-2-4|4
0|1|2|3|7-4-2-5|4
0|1|2|3|7-4-2-5|5
0|1|2|3|7-4-2-5|6

分割档3:

C1|C2|C3|C4|C5|C6
0|1|2|3|7-5-2-6|5

基于第5列,应为该列中的每3个唯一值拆分文件,甚至应包含重复第5列的值的所有行。有人可以帮我弄这个吗?

斯蒂芬·查泽拉斯(Stephane Chazelas)

awk的工作。就像是:

awk -F'|' -v fileformat="/abc/output/file_%04d.txt" -v max=3 -v field=5 '
  NR == 1 {header = $0; next}
  ! ($field in seen) {
    seen[$field]
    if (++n % max == 1) {
      close(out)
      out = sprintf(fileformat, ++f)
      print header > out
    }
  }
  {print > out}' < /abc/input/a.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Unix复制文件中的每一行

来自分类Dev

在txt文件unix bash的每一行中打印第一个单词

来自分类Dev

Unix:对输入文件的每一行执行grep命令,并将输出保存到文件

来自分类Dev

Unix:如何计算跨多个文件的每一行的实例

来自分类Dev

Unix-如何将文本附加到文件的每一行(标题行/第一行除外)

来自分类Dev

在unix中为文本文件中的每一行制作目录结构

来自分类Dev

如何使用Unix从文件的每一行中获取特定字符串的搜索计数?

来自分类Dev

将序列号作为序列添加到UNIX中文件中特定位置的每一行

来自分类Dev

需要将字符串连接到UNIX中ls命令输出的每一行

来自分类Dev

比较文件中不同列中的两个数组,并使用 unix 为每一行打印匹配元素

来自分类Dev

UNIX在文本文件中查找包含字符串的每一行,并输出其中的最后一个字

来自分类Dev

Unix命令在UNIX文件中查找唯一的帐户ID

来自分类Dev

将具有多个唯一单词的列中的每一行拆分为多个列

来自分类Dev

UNIX-将标题添加到每一行的第一列

来自分类Dev

将4个Unix命令链接在一起,并将该命令拆分为其他行

来自分类Dev

如何使用一行命令同时解析多个文件(Linux / Unix)

来自分类Dev

将列拆分为一行并在UNIX中提取选择性数据

来自分类Dev

使用Unix Shell脚本从文件中删除一行

来自分类Dev

如何使用grep / awk / unix将一个文件中的所有行匹配到另一个文件中,即使它们是重复的

来自分类Dev

在每一行中查找特定单词并在Unix Shell脚本中显示结果

来自分类Dev

如何更改Unix中每一行的数据日期格式?

来自分类Dev

将文件的每一行拆分为TCL中的新文件

来自分类Dev

读取文件并将每一行拆分为C ++中的多个变量

来自分类Dev

打开一个文件,将每一行拆分为一个列表,然后针对每一行中的每个单词检查单词是否在列表中,如果没有,则将其附加到列表中

来自分类Dev

UNIX:如何使用sed打印每4行中的第一行和第二行?

来自分类Dev

Unix命令将多行合并为一行

来自分类Dev

如何在perl或unix脚本中的某些条件的第一个匹配处将一个hex文件拆分为两个hex文件

来自分类Dev

在同一行unix命令中循环并打印星号

来自分类Dev

如何在Unix中通过find命令在文件名前添加最后一行文件

Related 相关文章

  1. 1

    Unix复制文件中的每一行

  2. 2

    在txt文件unix bash的每一行中打印第一个单词

  3. 3

    Unix:对输入文件的每一行执行grep命令,并将输出保存到文件

  4. 4

    Unix:如何计算跨多个文件的每一行的实例

  5. 5

    Unix-如何将文本附加到文件的每一行(标题行/第一行除外)

  6. 6

    在unix中为文本文件中的每一行制作目录结构

  7. 7

    如何使用Unix从文件的每一行中获取特定字符串的搜索计数?

  8. 8

    将序列号作为序列添加到UNIX中文件中特定位置的每一行

  9. 9

    需要将字符串连接到UNIX中ls命令输出的每一行

  10. 10

    比较文件中不同列中的两个数组,并使用 unix 为每一行打印匹配元素

  11. 11

    UNIX在文本文件中查找包含字符串的每一行,并输出其中的最后一个字

  12. 12

    Unix命令在UNIX文件中查找唯一的帐户ID

  13. 13

    将具有多个唯一单词的列中的每一行拆分为多个列

  14. 14

    UNIX-将标题添加到每一行的第一列

  15. 15

    将4个Unix命令链接在一起,并将该命令拆分为其他行

  16. 16

    如何使用一行命令同时解析多个文件(Linux / Unix)

  17. 17

    将列拆分为一行并在UNIX中提取选择性数据

  18. 18

    使用Unix Shell脚本从文件中删除一行

  19. 19

    如何使用grep / awk / unix将一个文件中的所有行匹配到另一个文件中,即使它们是重复的

  20. 20

    在每一行中查找特定单词并在Unix Shell脚本中显示结果

  21. 21

    如何更改Unix中每一行的数据日期格式?

  22. 22

    将文件的每一行拆分为TCL中的新文件

  23. 23

    读取文件并将每一行拆分为C ++中的多个变量

  24. 24

    打开一个文件,将每一行拆分为一个列表,然后针对每一行中的每个单词检查单词是否在列表中,如果没有,则将其附加到列表中

  25. 25

    UNIX:如何使用sed打印每4行中的第一行和第二行?

  26. 26

    Unix命令将多行合并为一行

  27. 27

    如何在perl或unix脚本中的某些条件的第一个匹配处将一个hex文件拆分为两个hex文件

  28. 28

    在同一行unix命令中循环并打印星号

  29. 29

    如何在Unix中通过find命令在文件名前添加最后一行文件

热门标签

归档