- 论坛徽章:
- 18
|
大家好!
我还有一个文本处理的问题向大家请教:
我用Perl脚本从数据库中读取数据生成了一个文本文件。
|No|AR-------|Description-------------------------------------------------|State------|Assigned Group---------|NCCD------[Day]|JIRA---------------|
| 1|1-6350029|C-Pipes created via OC-3 STM port operationaly down |Resolved |CloQ-IPD-SR&SSR-vGlobal|2016-11-29[-95]| |
| 2|1-6443085|DP11.3b: Command output of MCAST for 7450 CLI on SROS 13R8 |Resolved |CloQ-IPD-SR&SSR-vGlobal|2016-11-29[-95]| |
| 3|1-6477220|(B2B Court 7210) 7210 SAS rebooted without any reason |Pending |TSCr-IPD-APAC |2017-01-31[-32]|corp-jira:SAS-1805 |
| 4|1-6496243|[WCP][FOA][WCP-FOA001]7750 MG issue on Oct 19 (CSR respon...|Resolved |CloQ-IPD-SR&SSR-vGlobal|2017-03-12[ 7]|corp-jira:SR-24356 |
| 5|1-6527369|Can’t Login MDN-TBG-EN2-SAR8 |Pending |NorP-IPD-SR&SSR-vGlobal|2017-03-06[ 1]| |
| 6|1-6528649|[WideEther][TKEvrs-45][production] 1/1/1 MC-LAG 51 has s...|Pending |NorP-IPD-SR&SSR-vGlobal|2017-03-24[ 19]|corp-jira:ESS-6137 |
| 7|1-6536745|(KT GOA 7750) Firewall session initiation is strange |In Progress|NorP-IPD-SR&SSR-vGlobal|2017-03-10[ 5]|corp-jira:SR-25263 |
| 8|1-6559753|"pppoeCreateESMObjects: SBM IPCP session is already created"|Resolved |CloQ-IPD-SR&SSR-vGlobal|2017-02-28[ -4]|corp-jira:SR-25724 |
这个文本应该是纯英文的,但是由于输入者的操作系统可能是中文的,所以在输入时会混进中文编码的标点符号。
比如下图中的第5行中的Can't中的单引号,由于是中文编码,导致在纯英文系统中无法正常处理,虽然显示为一个字符的单引号,但是却占用了3个字节的空间,导致本来很整齐的表格显得缩进去了2格。
我想把文本中的这种中文编码的字符串删除,或者如果它实际占用了3个字节,就显示为3个小数点...。
不知道perl脚本应该怎样写呢?
我现在只是把对应的文本删除了换行和制表符,然后如果长度超过60个字符,则截短为60个字符。
$short_des=$vals{$f{'Short Description'}};
$short_des=~ s/\n//g;
$short_des=~ s/\t//g;
if ( length($short_des) > 60 ) {
$short_des=substr($short_des,0,57) . "...";
目的就是想让表格显示比较整齐一点。
但是这些讨厌的中文标点符号使得表格不整齐。
应该如何处理呢?
请多指教。
谢谢大家。
|
|