提取括号内数据

问题:

有的行有括号,有的行有一组括号(),有的行有两组括号()(),每个括号内有两个数字,有逗号隔开。提取括号内的两个数字,用空格分开。原来一个括号里的两个数字要占一行。附件是一个待处理文本。

例如文本
---------------------------------
   80.0000000000000        8.00000000000000        4.00000000000000     
   4.00000000000000        24.0000000000000        1.00000000000000     
  0.000000000000000E+000  0.000000000000000E+000  0.000000000000000E+000
  1.333333333333333E-002
  -9.03196517310970        1.99999999999800        5.90361146269155     
   1.99999999999800        5.90361231235872        1.99999999999800     
   5.90361231235875        1.99999999999800     
   10.2858284013301       0.000000000000000E+000
(-3.580654501620760E-010,-1.784472163625327E-009)
(0.225066057852569,-0.165873834696735)  (0.325505768511269,-9.488556897954557E-002)
------------------------------------------------------------------------------------------------
提取后变成
-3.580654501620760E-010  -1.784472163625327E-009
0.225066057852569   -0.165873834696735
0.325505768511269   -9.488556897954557E-002

解答:

awk ‘/\(/{gsub(/[(),]+/," ",$0);if($3)print $1,$2"\n"$3,$4;else print $1,$2}‘ file
-3.580654501620760E-010 -1.784472163625327E-009
0.225066057852569 -0.165873834696735
0.325505768511269 -9.488556897954557E-002

时间: 2024-10-12 19:51:45

提取括号内数据的相关文章

如何用正则提取括号内的字符

1.首先判断有没有括号, if(preg_match("/\([\s\S]*?\)/",$str)){ echo "包含括号"; } 2. preg_match_all("/\(([\s\S]*?)\)/",$str,$r,PREG_PATTERN_ORDER);$r[1][0]则为括号内的内容

利用正则表达式提取括号内内容

比如现在要提取  中华人们共和国,简称(中国) 这句话中括号里的“中国” 1 import java.util.regex.Matcher; 2 import java.util.regex.Pattern; 3 public class Test 4 { 5 public static void main(String[] args) 6 { 7 String str ="中华人民共和国,简称(中国)."; 8 Matcher mat = Pattern.compile("

正则表达式之提取括号内内容

string str="aaaaaaaaa(bbbb)cccc"; var patern = "(?<=\\()[^\\)]+"; if (Regex.Matches(item.OuterHtml, patern).Count > 0) { foreach (var regex in Regex.Matches(item.OuterHtml, patern)) { str += regex; } } console.writerLine(str); 原文

SQL Server 2008空间数据应用系列十一:提取MapInfo地图数据中的空间数据解决方案

原文:SQL Server 2008空间数据应用系列十一:提取MapInfo地图数据中的空间数据解决方案 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC规范.KML规范)的GIS专业理论知识. 5

delphi去掉括号及括号内的内容函数

function TSetParkForm.RemoveSgin(str: string): string; // 去掉括号内的内容(包括括号) var i1, i2, i: integer; begin for i := 0 to length(str) - 1 do begin i1 := str.IndexOf('('); if i1 = -1 then break; i2 := str.IndexOf(')'); if i2 = -1 then break; end; result :=

十、Vue:Vuex实现data(){}内数据多个组件间共享

一.概述 官方文档:https://vuex.vuejs.org/zh/installation.html 1.1vuex有什么用 Vuex:实现data(){}内数据多个组件间共享一种解决方案(类似react的redux) 1.2什么情况下使用vuex 虽然 Vuex 可以帮助我们管理共享状态,但也附带了更多的概念和框架.这需要对短期和长期效益进行权衡. 如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的.确实是如此--如果您的应用够简单,您最好不要使用 Vuex.一个简单的 gl

查询表数据的时让表内数据全大写、小写、首字母大写、前几位字母大写

select                       Upper(Substring(列名, 1, 1)) + Lower(Substring(列名, 2,LEN(列名))) AS 想显示的列名,        UPPER(列名) AS 想显示的列名,                   Upper(Substring(列名, 1, 6)) + Substring(列名, 7,LEN(列名)) AS 想显示的列名,       LOWER(列名)AS 想显示的列名,             

模拟QQ分组(具有伸缩功能) SimpleExpandableListAdapter 适配器的用法,并且可添加组及其组内数据。

1 package com.lixu.qqfenzu; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 import java.util.Map; 7 8 import android.app.Activity; 9 import android.content.Context; 10 import android.graphics.Color; 11 import an

db数据库利用第三方框架进行提取和解析数据

db的数据包用从github上下载的三方框架进行解析和数据提取,格式一般为数组和字典.db的查看工具是firefox上的解析db插件SQLite 三方框架为FMDB #import "ViewController.h" //1. 引入头文件,需要引入libsqlite3的库 #import "FMDB.h" #import "Word.h" @interface ViewController () @end @implementation Vie