科技 > 操作系统 > Linux

awk 输出前 N 列的最简单方法

175人参与2019-10-09

最近遇到一种场景,需要输出一个文本信息的前 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 列的最简单方法

10-09

Linux——Vmware虚拟机中CentOS安装,CentOS安装Qt

10-09

Hyper-V安装CentOS 8问题

10-09

干货,不小心执行了rm -f,除了跑路,如何恢复?https://www.cnblogs.com/justmine/p/10359186.html

10-09

小鸟初学Shell编程(九)环境变量变量配置文件

10-09

每天3分钟操作系统修炼秘籍(3):内核态和用户态

10-09

拓展阅读

大家都在看

centos 7:network: 正在打开接口 ens33: 错误:激活连接失败:No suitable device found for this connection.

03-12

VMware Workstation 15 Pro简化安装Kali Linux 2019.2

06-12

Gitlab CI-3.遇到的问题

10-17

[BlueZ] 2、使用bluetoothctl搜索、连接、配对、读写、使能notify蓝牙低功耗设备

09-06

java.net.ProtocolException:unexpected end of stream

09-10

libcrypto.so.10内容丢失导致sshd无法运行

03-04

CentOS7使用nmtui和nmcli配置网络

08-03

使用OpenVPN实现局域网互联

07-21

热门评论