美文网首页
2022-11-22linux的一些小技巧(持续更新)

2022-11-22linux的一些小技巧(持续更新)

作者: 麦冬花儿 | 来源:发表于2022-11-22 15:10 被阅读0次

    1、如何统计一个文件的行数和列数

    awk '{i++} END {print FILENAME, i, NF}' test.txt
    

    2、如何使用awk删除首行或尾行

    在网上看到一个很巧妙的方法,可以删除文件的首行、尾行和首尾两行,原理和操作记录如下
    利用awk按行遍历,依次执行body的特点, 如下面命令
    awk 'NR>1 {print line} {line=$0}'   作用是去掉最后一行。
    首轮先输出line(此时为空值,打印空行,所以用 NR>1 跳过此输出),再把首行赋值给line变量,
    然后在第二轮输出了line(此时为第一行内容),循环到最后一行时,输出为倒数第二行内容。
    最后把最后一行赋值给line,但循环已完,所以最后一行不会输出,即去掉最后一行。
    按上面原理
    如果想去掉首行,就设置 NR>2
    如果想保留最后一行,可以在END输出line即可
    

    删除首行

    awk 'NR>2{print line}{line=$0} END{print line}' a.txt
    

    删除尾行

    awk 'NR>1{print line}{line=$0}' a.txt 
    

    删除首尾两行

    awk 'NR>2{print line}{line=$0}' a.txt 
    

    3、也可以使用sed更方便一些
    删除第一行

    sed 1d a.txt 
    tail -n +2 a.txt
    

    删除前两行

    sed 1,2d a.txt 
    tail -n +3 a.txt
    

    删除最后一行

    sed '$d' a.txt
    head -n-1 a.txt
    

    删除最后两行

    head -n -2 a.txt
    

    相关文章

      网友评论

          本文标题:2022-11-22linux的一些小技巧(持续更新)

          本文链接:https://www.haomeiwen.com/subject/hphnxdtx.html