我有一个大文本文件,它基本上是一个数据流,每一行几乎都压缩在一起。我被要求调查某些列中某些数据的失败。数据没有以任何方式分隔。然而,我确实有一个“列”长度的列表,以及关于每个“列”中是否有相关数据的评论。
我会使用 Excel,但 Excel 按列分隔的限制限制为每行 1000 个字符,并且每行远远超出此范围。其中许多字段有 30 个空格作为填充符,其中至少有 15 个左右......我希望解析这些指定的“空”字段。
我需要的是一种方法,我可以将我的文件输入到我可以提供的数组中,该数组具有列长度,可能还有一个像“X”这样的标记来忽略我想忽略的相应列,让它吐出一个新的带有分隔符的文件,然后我可以将其反馈到 Excel 中进行分析。
例如,如果我有一个像aaaaaabbbbbccccdddddeeeffffff这样的文件,并且我将这个文件与[6 5 4X 5 3X 6]它的数组一起输入,则会aaaaaa^bbbbb^ddddd^ffffff在该行中吐出一个文件。
有没有办法做到这一点grep,awk或者sed?
提前致谢。
短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)