如何在 Linux shell 中根据第一个字符拆分文件

韦斯利·罗梅罗

我确实有一个带有标题和详细信息的固定宽度平面文件。它们都可以通过第一个字符识别:1 为标题,2 为详细信息。

我想从我的固定宽度文件中生成 2 个不同的文件,每个文件都有自己的记录集,但没有写入类型记录。

文件 Header.txt 只有类型 1 记录。文件 Detail.txt 只有类型 2 记录。

请让我知道我们如何实现这一目标。

示例平面文件:

120190301,025712,FRANK,DURAND,USA
20257120023.12
20257120000.21
20257120191.45
120190301,025737,ERICK,SMITH,USA
20257370000.29
20257370326.41
120190301,025632,JOSEPH,SILVA,USA
20256320019.57
20256320029.12
20256320129.04

期望的输出:

标题.txt

20190301,025712,FRANK,DURAND,USA
20190301,025737,ERICK,SMITH,USA
20190301,025632,JOSEPH,SILVA,USA

详情.txt

0257120023.12
0257120000.21
0257120191.45
0257370000.29
0257370326.41
0256320019.57
0256320029.12
0256320129.04
贾斯

第一个是 gawk 特定的并且有效,因为在 gawk 中“如果 [of FS] 的值是空字符串 (""),则记录中的每个字符都成为一个单独的字段。”

$ awk 'BEGIN {FS=""; f[1]="header.txt"; f[2]="detail.txt"}
       {i=$1; sub(/^./,""); print > f[i]}' file

$ cat header.txt
20190301,025712,FRANK,DURAND,USA
20190301,025737,ERICK,SMITH,USA
20190301,025632,JOSEPH,SILVA,USA

$ cat detail.txt
0257120023.12
0257120000.21
0257120191.45
0257370000.29
0257370326.41
0256320019.57
0256320029.12

一个应该与任何 awk 一起工作的:

$ awk '/^1/ {f="header.txt"}
       /^2/ {f="detail.txt"}
      {sub(/^./,""); print > f}' file

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从shell重定向或`read`中拆分一个字符串?

来自分类Dev

如何从 Linux 命令行中删除包含特定字符串的行中的第一个字符?

来自分类Dev

如何为bash shell做一个以变量0为第一个字符的增量

来自分类Dev

如何在不使用模块的情况下根据单词的第一个字符拆分列表并将其放入字典中?

来自分类Dev

如何在Shell中获取另一个字符串中一个字符串的行号

来自分类Dev

如何在cmd中读取多个文件的2个第一个字符

来自分类Dev

如何在下拉列表中显示第一个字符

来自分类Dev

如何在excel中求和列的第一个字符?

来自分类Dev

如何在linux shell中做求和

来自分类Dev

如何根据对象数组中属性的第一个字符过滤对象数组?

来自分类Dev

如何在Linux Shell脚本中解析多个字符串模式

来自分类Dev

Bash:如何检查文件的第一个字符是否为{

来自分类Dev

如何从文本文件中删除第一个字符串和逗号

来自分类Dev

如何删除文件中除第一个字符外的所有行?

来自分类Dev

如何从飞镖中的单词中获取第一个字符?

来自分类Dev

如何在一行中第一个字符后匹配字符串

来自分类Dev

如何在XAML中从字符串中剥离第一个字符

来自分类Dev

如何在第一个字符后屏蔽字符串

来自分类Dev

如何获取C中多个条目的第一个字符?

来自分类Dev

如何防止在Android中删除编辑文本的第一个字符

来自分类Dev

如何获取“ HTML” Javascript中每个单词的第一个字符?

来自分类Dev

如何跳回* nix命令行中的第一个字符?

来自分类Dev

如何使用sed删除特定列中的第一个字符

来自分类Dev

如何替换bash中数组元素的第一个字符

来自分类Dev

如何从数组的每个元素中删除第一个字符 - Javascript

来自分类Dev

如何在php中获取字符串的第一个字符

来自分类Dev

如何在Rust中访问字符串的第一个字符?

来自分类Dev

如何在Rust中访问字符串的第一个字符?

来自分类Dev

shell中字符串的第一个字符不起作用

Related 相关文章

  1. 1

    如何从shell重定向或`read`中拆分一个字符串?

  2. 2

    如何从 Linux 命令行中删除包含特定字符串的行中的第一个字符?

  3. 3

    如何为bash shell做一个以变量0为第一个字符的增量

  4. 4

    如何在不使用模块的情况下根据单词的第一个字符拆分列表并将其放入字典中?

  5. 5

    如何在Shell中获取另一个字符串中一个字符串的行号

  6. 6

    如何在cmd中读取多个文件的2个第一个字符

  7. 7

    如何在下拉列表中显示第一个字符

  8. 8

    如何在excel中求和列的第一个字符?

  9. 9

    如何在linux shell中做求和

  10. 10

    如何根据对象数组中属性的第一个字符过滤对象数组?

  11. 11

    如何在Linux Shell脚本中解析多个字符串模式

  12. 12

    Bash:如何检查文件的第一个字符是否为{

  13. 13

    如何从文本文件中删除第一个字符串和逗号

  14. 14

    如何删除文件中除第一个字符外的所有行?

  15. 15

    如何从飞镖中的单词中获取第一个字符?

  16. 16

    如何在一行中第一个字符后匹配字符串

  17. 17

    如何在XAML中从字符串中剥离第一个字符

  18. 18

    如何在第一个字符后屏蔽字符串

  19. 19

    如何获取C中多个条目的第一个字符?

  20. 20

    如何防止在Android中删除编辑文本的第一个字符

  21. 21

    如何获取“ HTML” Javascript中每个单词的第一个字符?

  22. 22

    如何跳回* nix命令行中的第一个字符?

  23. 23

    如何使用sed删除特定列中的第一个字符

  24. 24

    如何替换bash中数组元素的第一个字符

  25. 25

    如何从数组的每个元素中删除第一个字符 - Javascript

  26. 26

    如何在php中获取字符串的第一个字符

  27. 27

    如何在Rust中访问字符串的第一个字符?

  28. 28

    如何在Rust中访问字符串的第一个字符?

  29. 29

    shell中字符串的第一个字符不起作用

热门标签

归档