如何从大型记事本文本文件中提取某些列?
我有一个大文本文件,其中的数据分为 5 列,但我只需要其中的第一列和最后一列。
如果我想把这两列的数据从这里一一输入到另一个文件中,需要很多天的时间,而且可能会出错。 有没有快速的方法来做到这一点? 例如:
1 1.0000000000000000 0.0000000000 S {0}
2 1.5000000000000000 0.3010299957 C {2}
3 1.7500000000000000 0.6020599913 S {0,2}
4 2.0000000000000000 0.7781512504 C {3}
5 2.3333333333333333 1.0791812460 C {3,2}
6 2.5000000000000000 1.3802112417 S {3,0,2}
7 2.5277777777777778 1.5563025008 S {0,3}
8 2.5833333333333333 1.6812412374 S {3,0,0,2}
9 2.8000000000000000 1.7781512504 C {5,2}
10 3.0000000000000000 2.0791812460 C {5,0,2}
我需要第一列(编号)和 { } 内的最后一列。
I have a big text file and the data in it are in 5 columns, but I need just the first and the last column of that.
It will take many days and probably with mistake if I want to enter the data of this two column one-by-one from here to another file.
Is there a fast way to do this?
For example:
1 1.0000000000000000 0.0000000000 S {0}
2 1.5000000000000000 0.3010299957 C {2}
3 1.7500000000000000 0.6020599913 S {0,2}
4 2.0000000000000000 0.7781512504 C {3}
5 2.3333333333333333 1.0791812460 C {3,2}
6 2.5000000000000000 1.3802112417 S {3,0,2}
7 2.5277777777777778 1.5563025008 S {0,3}
8 2.5833333333333333 1.6812412374 S {3,0,0,2}
9 2.8000000000000000 1.7781512504 C {5,2}
10 3.0000000000000000 2.0791812460 C {5,0,2}
I need the first column (numbering) and the last inside { }.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
ALT
+鼠标左键单击
使您进入列模式选择。这是一个非常有用的快捷方式,可能会对您有所帮助。ALT
+Left Mouse Click
puts you in Column Mode Select. It's quite an useful shortcut that may help you.在Notepad++中,可以使用正则表达式进行替换:
查找和替换的正则表达式为:
^( +\d+).+\{([\d,]+)\}$
\1 \2
然后可以将:更改
为:
如果不需要前导空格,则使用:
^( +\d+).+\{([\d, ]+)\}$
\1 \2
将更改为:
in Notepad++, you can use regular expression to do replacement:
the regex for find and replace is:
^( +\d+).+\{([\d,]+)\}$
\1 \2
then can change the:
to:
if not want the leading space, then use:
^( +\d+).+\{([\d,]+)\}$
\1 \2
will change to:
您应该使用在 Windows 平台上也可用的
awk
或gawk
。使用 gawk "{print $1,$5}" inpfile >输出文件。我复制了你的文件并将其命名为“one”。您可以看到由文件的第一列和第五列组成的输出。You should use
awk
orgawk
which is available on windows platform also. Usegawk "{print $1,$5}" inpfile > outfile
. I copied your file named it 'one'. You can see the output which consists of 1st and 5th column of your file.您可以将其导入 Excel 并在那里进行操作。
You can import it into Excel and manipulate it there.
如果您使用 .NET,FileHelpers 可能会为您节省大量时间。从您的帖子中我们无法得知您希望使用什么技术来完成此任务。
If you are using .NET, FileHelpers may save you a lot of time. From your post we can't tell what technology you are hoping to use to accomplish this.
Ultraedit 有一个用于选择列和打开大文件的工具(我在 2008 年的桌面上尝试了一个 900 Mb 的文件,它在 3 分钟内打开)。我认为它有一个完全可以运行的演示版本。
如果行数不多,Excel 也可以使用。
干杯,
Ultraedit has a tool for selecting columns and opens large files (I tried a 900 Mb file on a 2008 desktop and it opened in 3 minutes). I think it has a demo version fully operational.
Excel could work if you do not have too many rows.
Cheers,
另一种方法是将数据复制到 MS Word 文件。
然后使用
{Alt + 鼠标左键单击}
然后您可以在选定的列上拖动,您可以看到只选择了单个列。
复制并粘贴到任何您想要的地方。
One more way is to copy the data to MS word file.
Then use
{Alt + left mouse click}
Then you can drag on the selected column and you can see only a single column is selected.
Copy and paste wherever you want.
只有一种方法可以对大量数据进行卷积。那是通过命令提示符。
此 15 秒修复在 Windows 操作系统中不可用。在你衣柜里那台废弃的旧电脑上下载并安装 Linux 所花费的时间比从 Excel 中输入和输出数据所花费的时间要少。
快乐编码!
There is only one way to convolve ungodly amounts of data. That is with the command prompt.
This 15 second fix is not available in Windows OS. It will take you less time to download and install Linux on that old dead computer in your closet than it will to get your data in and out of Excel.
Happy coding!