剪切/编辑行线,然后将行转置为列数组
我极大地简化了问题中的值
我在 space-delim 文件中有 500k 行文本,我需要提取 x
, y
值以从每一行进行绘图并将这些行转置为列。我正在尝试确定最有效的方法,并且我一直在使用 sed 和 awk 编写 bash 脚本 - 但如果有更好的方法这样做的方法,我愿意接受建议。
以下代码块是前 3 行文本的简单示例。前 4 个值(a、b、c、num)可以忽略,但随后每对值(以 0.000 分隔)需要被剪切并放入一列中,我需要对每一行执行此操作。 2、3 或 2(紧接在 c
之后)告诉我们该行中有多少个 x,y 对,以 2500
和 < 开头code>500
示例输入:
a b c 2 2500.0 500.0 0.000 0.0 10.0
a b c 3 2000.0 450.0 0.000 1000.0 400.0 0.000 0.0 12.0
a b c 2 1800.0 475.0 0.000 0.0 15.0
预期输出:
2500.0 500.0 2000.0 450.0 1800.0 475.0
0.0 10.0 1000.0 400.0 0.0 15.0
0.0 12.0
I've greatly simplified the values in the question
I have 500k lines of text in a space-delim file that I need to extract x
, y
values for plotting from each row and transpose those rows to columns. I'm trying to determine the most efficient way of doing this, and I've most been working in a bash script using sed
and awk
-- but if there are better ways of doing this, I'm open to suggestions.
The following code block is a simple example of the first 3 lines of text. The first 4 values (a,b,c,num) can be ignored but then each pair of values (separated by 0.000) needs to be cut and placed into a column and I need to do this for every line. The 2, 3 or 2 (right after c
) tells us how many x,y pairs follow in the line, starting with 2500
and 500
Sample input:
a b c 2 2500.0 500.0 0.000 0.0 10.0
a b c 3 2000.0 450.0 0.000 1000.0 400.0 0.000 0.0 12.0
a b c 2 1800.0 475.0 0.000 0.0 15.0
Expected output:
2500.0 500.0 2000.0 450.0 1800.0 475.0
0.0 10.0 1000.0 400.0 0.0 15.0
0.0 12.0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我突然灵光一闪——这就是你想做的事情吗:
以前的答案:
使用您的新示例:
原始答案:
I had a flash of inspiration - is this what you're trying to do:
Previous answers:
Using your new example:
Original answer: