从没有分隔符的文本文件中提取列

Eli*_*zio 1 text-processing

我有一个大文本文件,它基本上是一个数据流,每一行几乎都压缩在一起。我被要求调查某些列中某些数据的失败。数据没有以任何方式分隔。然而,我确实有一个“列”长度的列表,以及关于每个“列”中是否有相关数据的评论。

我会使用 Excel,但 Excel 按列分隔的限制限制为每行 1000 个字符,并且每行远远超出此范围。其中许多字段有 30 个空格作为填充符,其中至少有 15 个左右......我希望解析这些指定的“空”字段。

我需要的是一种方法,我可以将我的文件输入到我可以提供的数组中,该数组具有列长度,可能还有一个像“X”这样的标记来忽略我想忽略的相应列,让它吐出一个新的带有分隔符的文件,然后我可以将其反馈到 Excel 中进行分析。

例如,如果我有一个像aaaaaabbbbbccccdddddeeeffffff这样的文件,并且我将这个文件与[6 5 4X 5 3X 6]它的数组一起输入,则会aaaaaa^bbbbb^ddddd^ffffff在该行中吐出一个文件。

有没有办法做到这一点grepawk或者sed

提前致谢。

Rom*_*est 6

cut命令方法:

示例input.txt内容:

aaaaaabbbbbccccdddddeeeffffff
wwwwwwddddd111133333xxxaaaaaa
ffffff00000sssszzzzz000rrrrrr
Run Code Online (Sandbox Code Playgroud)

工作:

cut -c 1-6,7-11,16-20,24-29 --output-delimiter=^ input.txt
Run Code Online (Sandbox Code Playgroud)
  • -c - 只选择字符

  • 1-6,7-11,16-20,24-29 - 字符位置连续范围,灵活可调

  • --output-delimiter=^ - 输出字段分隔符,您可以将其调整为您想要的任何内容


输出:

aaaaaa^bbbbb^ddddd^ffffff
wwwwww^ddddd^33333^aaaaaa
ffffff^00000^zzzzz^rrrrrr
Run Code Online (Sandbox Code Playgroud)