Unix脚本删除CSV文件的第一行

时间:2012-03-09 11:13:56

标签: unix csv vi

之前我已经说过我不擅长编写脚本,所以我将下面的文件从共享目录复制到我的更改权限的地方。但后来我想删除每个CSV文件中的第一行 - 标题 - 然后我想让它每小时运行一次。

cd /users
scp dehpc14_Disk_Quota_Report.csv /h/u544835
scp dehpc14_User_Disk_Usage.csv /h/u544835
cd /h/u544835
chmod 755 dehpc14_Disk_Quota_Report.csv
chmod 755 dehpc14_User_Disk_Usage.csv

*在此处插入删除csv第一行*

任何人都可以帮我删除CSV文件的第一行,并让它每小时自动运行一次,或者指导我做一些我可能理解的事情来解决它吗?

4 个答案:

答案 0 :(得分:79)

您可以使用sed删除文件的第一行:

sed -i '' 1d file.csv

如果您只想获取没有第一行的文件内容,并且没有修改文件,请删除-i ''标记:

sed 1d file.csv

这里1d是执行命令:

  • 1 =>行动在哪里
  • d =>删除

所以 1d 表示'删除第1行'

如果你想获得第一行,你也可以使用sed:

sed -n 1p file.csv

此处 p 代表'print'或

sed 1q file.csv

(参见William Pursell的评论)

答案 1 :(得分:2)

我试图从CSV中删除第一行,将cd删除到该位置,然后问题的答案对我不起作用,正在获取

  

sed:无法读取1d:没有此类文件或目录

因此,我使用了@amit所说的here

sed -i '1d' filename.csv

答案 2 :(得分:1)

在寻找这个答案时,我也找到了另一个帖子。在那里,他们说使用尾巴,实际上并没有做出OP所需要的修改。您当然可以复制到临时文件。此外,如果您要将文件流式传输到另一个工具,您可以在管道中使用“tail”,而不必编写临时文件或写入磁盘。

How can I remove the first line of a text file using bash/sed script?

答案 3 :(得分:1)

要创建没有标题的新CSV文件,您可以执行以下操作:

#start-vote {
    position: relative;
    display: inline-block;
    margin:  0 $pdn-lf;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    overflow: hidden;
    letter-spacing: 2px;
    border-radius: 40px;
    background: linear-gradient(90deg, #755bea, #ff72c0);
    animation-name: bubble-hover;
    animation-duration: .5s;
    animation-fill-mode: forwards;
    animation-play-state: running;
    animation-iteration-count: 1;
    &:hover {
        animation-name: bubble-hover;
        animation-duration: .5s;
        animation-fill-mode: forwards;
        animation-play-state: running;
        animation-iteration-count: 1;
    }

    @include md() {
        font-size: 27px;
        padding: 18px 54px;
    }

    @include lg() {
        font-size: 18px;
        padding: 12px 36px;
    }
}

@keyframes bubble-hover {
    0% {
        background: #755bea;
    }
    100% {
        background: #55e7fc;
    }
}