如何用perl将表格中不同列的数据进行拼凑,然后将拼凑后的数据用“|”连接在一起
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据进行拼凑,然后将拼凑后的数据用“|”连接在一起。
表格内容如下:
| 员工号码 | 员工姓名 | 职位 | 入职日期 |
| 1001 | 张三 | 销售 | 1980/12/17 0:00:00 |
| 1002 | 李四 | 财务 | 1981/02/20 0:00:00 |
| 1003 | 王五 | 经理 | 1981/02/22 0:00:00 |
| 1004 | 陈二 | 会计 | 1981/04/02 0:00:00 |
要求如下:
将员工姓名和入职日期用键值对的形式拼凑在一起,然后将拼凑后的数据用“|”连接在一起。
结果如下:
张三:1980/12/17 0:00:00|李四:1981/02/20 0:00:00|王五:1981/02/22 0:00:00|陈二:1981/04/02 0:00:00
脚本如下:
#!/usr/bin/perl
use strict;
my $line;
while(<>){
s/\r\n//;
if(/(\S+)\s+(\S+)\s+(\S+)\s+(.*)/){
$line .=$2.':'.$4.'|';
}
}
print "$line\n";
脚本执行的结果如下:
员工姓名:入职日期|张三:1980/12/17 0:00:00|李四:1981/02/20 0:00:00|王五:1981/02/22 0:00:00|陈二:1981/04/02 0:00:00|
基本上符合要求。
总结:
1. \s在perl中匹配空白字符。\S匹配的是非空白字符。本来一开始用的是\w,但\w默认匹配的是英文字符,数字和_。不匹配中文字符,所以在这里就用了\S来表示。
2. 这种需求在实际中还是蛮常见的,普通的数据库对于若干列之间的拼凑还是很容易实现的,但是如何将拼凑后的结果再次拼凑在一起,却是个挑战,perl很好的解决了这个问题。
如何用perl将表格中不同列的数据进行拼凑,然后将拼凑后的数据用“|”连接在一起的更多相关文章
- Flex中对表格中某列的值进行数字格式化并求百分比
1.问题背景 一般的,需要对表格中某列的数值进行格式化,对该数值乘以100,并保留两位小数,添加"%" 2.实现实例 <?xml version="1.0" ...
- Flex中单选按钮控制表格中的列的增加或减少
1.问题背景 单选按钮有"苹果"和"香蕉"两个,表格中的列有星期.苹果.香蕉和苹果比率,选择了"苹果"单选按钮,表格显示星期.苹果和苹果比率 ...
- Flex中对表格中某列的值进行数字格式化
1.问题背景 一般的,表格中展示的比率,对比率的处理是:保留两位小数,并向上保留 2.实现实例 <?xml version="1.0" encoding="utf- ...
- 使用js方法将table表格中指定列指定行中相同内容的单元格进行合并操作。
前言 使用js方法对html中的table表格进行单元格的行列合并操作. 网上执行此操作的实例方法有很多,但根据实际业务的区别,大多不适用. 所以在网上各位大神写的方法的基础上进行了部分修改以适合自己 ...
- jquery获取表格中特定列
jQuery().text() 如果有一个表格,我们要用jquery获取特定列,则需要修改列的索引值就好了,此句代码获取的是页面的第10列
- jQuery选择表格中的列
以选择table中的第一列为例: 方式1: $("table tr").find("td:first").html("first column&quo ...
- 解决读取Excel表格中某列数据为空的问题 c#
解决同一列中“字符串”和“数字”两种格式同时存在,读取时,不能正确显示“字符串”格式的问题:set xlsconn=CreateObject("ADODB.Connection") ...
- sql 查询表格中多列重复的数据并显示该表的其他列
我们一般情况下通过分组函数group by来查询重复的列 ) R 但是查询出的结果不能显示该表的其他列 想要查询一张表中有多个列重复的数据且也要显示该表的其他列 SELECT M.* FROM [db ...
- 全选或反选表格中第一列的checkbok
<input type="checkbox" onclick="$('table tr > td:first-child input:checkbox').p ...
随机推荐
- 安装windows服务批处理代码
批处理是DOS时代比较常用的方法之一,目前来说也是一种高效的方法,复制代码到文本文件中,保存并修改文件扩展名为“*.bat”. 安装windows服务批处理代码如下: @echo off set fi ...
- iOS单元格高度计算
// Created by mac on 16/6/29. // Copyright © 2016年 zcc. All rights reserved. // #import "HotCel ...
- SpringMVC自定义处理器里的那些事
一.如何让一个普通类成为Controller? ①:实现接口Controller 解析:handleRequest(request,response) ②:继承AbstractController 解 ...
- 最小生成树 prime poj1258
题意:给你一个矩阵M[i][j]表示i到j的距离 求最小生成树 思路:裸最小生成树 prime就可以了 最小生成树专题 AC代码: #include "iostream" #inc ...
- ActionMapping
在Struts中,ActionServlet只是任务的分派者,它依请求分配任务给其它的对象来执行,而分配的依据是请求的URI以及struts-config.xml的<action-mapping ...
- session跟cookie的区别
这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...
- touchstart、touchmove、touchend 实现移动端上的触屏拖拽
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- SQL Server全时区转换
SQL Server全时区转换 假如你的应用程序是跨国(例如跨国银行交易)使用的话,那么数据库的一些国际化特性支持可以说是非常重要 其中最常见的就是各国时区上的差异,由于SQL Server getd ...
- 【腾讯Bugly干货分享】Redex初探与Interdex:Andorid冷启动优化
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/583b9e3ee8992c2c2df6e6ac 导语 早在去年10月份,face ...
- 让你的站点也支持MarkDown
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式.Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此有很多人 ...