我有一堆行,我想分成两列,并从每列获取数据.数据看起来像这样:
current_well.well_number current_well.well_name current_well.well_type_code well_location.section well_location.range
基本上我想要做的是根据周期分割线,将数据转换为两列,然后获取每列的数据.我知道这可以在Excel中完成,但我真的对这个问题的VI解决方案感兴趣.我知道
%s/\./
将使用空格式格式化字符串.但是,一旦我的数据看起来像:
current_well well_number current_well well_name current_well well_type_code well_location section well_location range
如何获取每列的所有值,以便将其粘贴到另一个应用程序中?
linux column命令非常适合创建列
:%!column -s . -t
然后使用块复制。
一种选择是使用此Align插件对句点进行排列,以便您可以更轻松地在可视块模式下选择列.例如,如果你这样做:
:%Align \.
你最终得到:
current_well . well_number current_well . well_name current_well . well_type_code well_location . section well_location . range
如果您不想使用插件,请尝试使用空格填充列.例如,为您的文字:
:%s/\v(.*)\.(.*)/\=printf("%-16s %s", submatch(1), submatch(2))/
这会让你:
current_well well_number current_well well_name current_well well_type_code well_location section well_location range
然后,您可以Ctrl-V
选择要复制的文本列.只需确保选择宽度超过最宽值的列宽.