如何用perl將表格中不同列的資料進行拼湊,然後將拼湊後的資料用“|”串連在一起

來源:互聯網
上載者:User

標籤:

最近寫了一個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/perluse 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將表格中不同列的資料進行拼湊,然後將拼湊後的資料用“|”串連在一起

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.