首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用perl在特定位置删除列

使用perl在特定位置删除列
EN

Stack Overflow用户
提问于 2019-07-12 12:03:15
回答 1查看 102关注 0票数 0

我是Perl的新手,我正在尝试删除在特定位置定义的列。我的档案是这样的:

https://i.stack.imgur.com/18l5a.png

知道这些列的数字如下:

代码语言:javascript
复制
1-3 , 5-7 , 9-12 , 14-16 , 18-21 , 23-25 , 27-29 , 31-37 , 39-68 , 70-72 , 74

我想删除从以下位置开始的列:

代码语言:javascript
复制
1-3 , 14-16 , 23-25 , 27-29 , 31-37 , 39-68 , 70-72 , 74

这样我就可以得到这个,只有列: 5-7和9-12,但是将它们的位置改为: 1-5和7-10。

例如,我希望在特定位置添加新列(12-21),并获得以下结果文件:

https://i.stack.imgur.com/eQ0Yp.png

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-12 12:17:42

一种方法是使用unpack。试试这个perl p.pl < in.txt,其中p.pl是:

代码语言:javascript
复制
while (<>) {
    my @cols = unpack "A3xA3xA4xA*", $_;
    CORE::say join ' ', $cols[2] . '  ', $cols[1], "      same";
}

更新

根据评论中的讨论,以下解决方案解决了这个问题:

代码语言:javascript
复制
while (<>) {
    my @cols = unpack "A3xA3xA4xA*", $_;
    printf "%-5s %-5s %-4s\n", $cols[1], $cols[2], "same";
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57006624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档