首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在文本文件中重新排列列?

如何在文本文件中重新排列列?
EN

Unix & Linux用户
提问于 2016-10-15 19:29:14
回答 1查看 1.2K关注 0票数 2
代码语言:javascript
复制
Month   Name  Marks  
2016-10 Sam   58  
2016-09 Sam   77  
2016-10 John  64  
2016-09 John  47  
2016-10 Mark  71  
2016-09 Mark  38  
2016-10 Steve 83  
2016-09 Steve 39  

我从我的数据库中获取这个数据,第一列中有一个月,第二列中每个学生在第三列中都有标记。现在我想用这样的方式编辑,在第一栏中包含名称,在第二栏中包含2016-10的标记,在第三列中包含2016-09的标记。

EN

回答 1

Unix & Linux用户

发布于 2016-10-15 20:25:58

如果你需要两个月

代码语言:javascript
复制
sed '
    2~2{                                               #for even lines
        N                                              #attach next line
        s/\(\S\+ \)\(\S\+ \)[0-9]*\n\(\S\+\).*/\2\1\3/ #rearrange two line
    }
    1c\Name Month1 Month2                              #output new header
    ' file.data

或双重标记

代码语言:javascript
复制
sed '
    1!N             #from second line attach next line 
    s/\S\+ //       #remove first field (2016-10)
    s/\n.* / /      #remove 2 fields in attached line
    t               #ommit 1st line
    s/$/1 Marks2/   #arrange header
    ' file.data

其他版本

代码语言:javascript
复制
echo 'Name Marks1 Marks2' ;\
paste -sd' \n' <(tail -n +2 file.data) |
cut -d' ' -f 2,3,6
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/316637

复制
相关文章

相似问题

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