最近遇到一种场景,需要输出一个文本信息的前 N 列。

众所周知 cut 可以指定分隔符并指定列的范围,如 cut -d' ' -f-4 就是以空格为分隔符输出前 4 列。但是 cut 的分隔符只能是一个字符,远没有 awk 好用。

简单搜索了下网上各种资料都没有关于 awk 输出前 N 列的简单方法,见得最多的还是用一个 for 循环输出[1][2]:

$ awk '{ for(i=1; i<=2; i++) {print $i} }'

这里分享一个修改 NF 标记输出的方法:

$ awk '{NF=4}1'

这样就是输出前 4 列了,示例:

$ dpkg -l | grep ^ii | head -n 3 | awk '{NF=4}1'
ii accountsservice 0.6.45-1ubuntu1 amd64
ii acl 2.2.52-3build1 amd64
ii acpid 1:2.0.28-1ubuntu1 amd64

参考资料

  1. How to print first 'n' columns?
  2. Use awk to print the last N columns of a file or a pipe

awk 输出前 N 列的最简单方法的更多相关文章

  1. awk把第1列相同的第2列按“;”拼起来,最后输出第1列和拼起来的结果

    [root@localhost cc]# cat 2.txt adc 3 5 a d aa 3 adfa d ba 3 adf 第1列相同的第2列按";"拼起来,最后输出第1列和拼 ...

  2. awk输出指定列

    awk '{print $0} file' #打印所有列awk '{print $1}' file #打印第一列 awk '{print $1, $3}' file #打印第一和第三列 cat fil ...

  3. Linux显示文件前几行、拷贝文件前几行、删除文件前几列

    [一]显示文件前几行 ll -lrth:按照更改时间倒序排列,最新文件在下边 ll -lrSh:按照文件大小倒序排列,最大文件在下边 grep --color :高亮查询关键字 grep -A 10 ...

  4. 固定表头/锁定前几列的代码参考[JS篇]

    引语:做有难度的事情,才是成长最快的时候.前段时间,接了一个公司的稍微大点的项目,急着赶进度,本人又没有独立带过队,因此,把自己给搞懵逼了.总是没有多余的时间来做自己想做的事,而且,经常把工作带入生活 ...

  5. 用awk检查报表的列数

    用awk检查报表的列数 前提当然是报表都有相同数量的列 less yourfile|awk ‘{print NF;exit;}’ NF是awk的内置变量,表示当前记录里域的个数,不难看出,这个命令实际 ...

  6. perl删除文件前几列

    perl oneline 快速删除文件的前两列代码如下 6 perl -lane 'print join("\t",@F[2..$#F])' test.txt 输出效果

  7. 1.2输出100以内的素数&输出前100个素数。

    输出100以内的素数只是一个嵌套,在1.1的基础上添加一层循环,只需要注意从2开始,并且变量需要换一个. #include<stdio.h> int main() { ; ; i < ...

  8. awk删除文件第一列

    awk删除文件第一列 1.采用awk awk '{$1="";print $0}' file 2.采用sed sed -e 's/[^]* //' file sort -R fil ...

  9. table固定前两列和最后一列,其他滑动显示

    网上搜的基本都是4个table做的,数据处理比较麻烦,写了个一个table的,此示例只固定了前两列和最后一列,和网上的不太一样. 网上搜的基本都是4个table做的,数据处理比较麻烦,写了个一个tab ...

随机推荐

  1. ASP.NET Core 3.0 使用 gRPC无法编译问题

    一.问题 创建了gRPC项目后,编译发现报错: 二.解决 1.检查项目路径是否存在中文 2.检查当前Windows用户目录是否为非英文字符,如果是则必须改为英文 修改方法: https://jingy ...

  2. JavaScript基础6

    计时器 setInterval()   按照指定周期来调用函数或计算表达式     以毫秒计算 语法    setInterval(code,millisec[,“lang”]) code 要调用的函 ...

  3. 简单sql注入学到的延时盲注新式攻击

    0x01 知识点 mysql_pconnect(server,user,pwd,clientflag) mysql_pconnect() 函数打开一个到 MySQL 服务器的持久连接. mysql_p ...

  4. automaticallyAdjustsScrollViewInsets

    参考链接: https://www.jianshu.com/p/a1987a7c11ba

  5. 团队项目之Scrum1

    小组:BLACK PANDA 时间:2019.11.16 部分 得分项 分数 完成内容 第 1 篇 Scrum 冲刺博客 各个成员在 Alpha 阶段认领的任务 3 明日各个成员的任务安排 3 用户登 ...

  6. JVM-9-调优工具

    JDK的bin目录下有很多用于监视虚拟机和故障处理的工具,这些工具都非常稳定而且功能强大,能在处理应用程序性能问题.定位故障是发挥很大的作用.比较细心的读者可能会注意到这些工具的程序体积都异常小巧.并 ...

  7. 201871010111-刘佳华《面向对象程序设计(java)》第一周学习总结

    <面向对象程序设计(java)>第一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ...

  8. java异常处理机制详解

    java异常处理机制详解 程序很难做到完美,不免有各种各样的异常.比如程序本身有bug,比如程序打印时打印机没有纸了,比如内存不足.为了解决这些异常,我们需要知道异常发生的原因.对于一些常见的异常,我 ...

  9. 05_javaSE面试题:成员变量和局部变量

    题目 /** * 类变量:static修饰的 * 实例变量:不是static修饰的 * * 局部变量:栈 * 实例变量:堆 * 类变量:方法区 * @author kevin * @date 2019 ...

  10. 部署Springboot项目到Linux云服务器

    前言 环境:IDEA.Springboot.Maven(自己电脑安装的Maven) 一.打包jar包 检查自己的pom.xml文件下面有无Maven的依赖插件,即有无如下: <build> ...