如何快速提取data.txt第2、4、5列?

方法1:使用 cut 命令(简单分隔符场景)

适用场景:列由固定分隔符(如逗号、制表符)分隔,且列位置连续。
命令格式

cut -d '分隔符' -f 列序号列表 文件名

示例

# 提取第1到第3列(分隔符为制表符,默认)
cut -f 1-3 data.txt

注意

  • -d 指定分隔符(默认制表符),-f 指定列号(支持1,3,52-5格式)。
  • 缺点:无法处理空格等不固定分隔符。

方法2:使用 awk 命令(灵活处理复杂格式)

适用场景:分隔符不固定、需条件过滤或非连续列。
命令格式

awk -F '分隔符' '{print $列1 $列2 ...}' 文件名

示例

# 提取第1列和第3列(分隔符为空格或制表符)
awk '{print $1, $3}' data.txt
# 提取第2列和第4列(分隔符为冒号)
awk -F ':' '{print $2, $4}' /etc/passwd
# 结合条件:仅当第3列大于10时输出第1列和第2列
awk '$3 > 10 {print $1, $2}' data.csv

优势

  • -F 支持正则表达式(如-F "[,:]"表示逗号或冒号)。
  • 列号用加数字表示($1为第一列),OFS变量可自定义输出分隔符(如awk 'BEGIN{OFS=";"} {...}')。

方法3:使用 paste + 循环(合并多个命令的输出)

适用场景:需从不同命令或非连续列组合数据。
示例

# 合并ls命令的第1列(文件名)和第5列(大小)
ls -l | awk '{print $1}' > col1.txt
ls -l | awk '{print $5}' > col5.txt
paste col1.txt col5.txt

简化写法

paste <(ls -l | awk '{print $1}') <(ls -l | awk '{print $5}')

方法4:使用 datamash 工具(结构化数据处理)

适用场景:需高级表格操作(需安装:sudo apt install datamash)。
示例

# 提取第1列和第3列(分隔符为空格)
datamash -t ' ' cut 1,3 data.txt

总结与建议

方法 最佳场景 优势
cut 简单分隔符、连续列 语法简洁,执行速度快
awk 复杂分隔符、条件过滤、非连续列 功能强大,灵活度高
paste 合并多命令输出 适合管道操作
datamash 结构化数据的高级操作 支持统计、排序等扩展功能

安全提示

  • 处理用户输入文件时,避免使用-i原地修改参数,建议先备份。
  • 对未知文件先用head预览结构(如head -n 5 file)。

引用说明
本文方法参考GNU Coreutils官方文档(cut、awk)及Linux man手册,实践前建议通过man cutman awk查看系统帮助。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8954.html

(0)
酷番叔酷番叔
上一篇 2025年7月28日 01:55
下一篇 2025年7月28日 02:11

相关推荐

  • Linux系统调优如何针对CPU、内存、磁盘、网络进行优化?

    Linux系统调优是提升服务器性能、稳定性和资源利用率的关键工作,需结合实际业务场景从CPU、内存、磁盘、网络、内核参数等多维度综合优化,以下是具体调优方向及操作方法:CPU调优CPU调优核心在于均衡负载、减少上下文切换和提升计算效率,首先通过top、htop、vmstat等工具监控CPU使用率,若user(用……

    2025年9月18日
    12200
  • Linux如何启动指定端口并监听?

    在Linux系统中,“起一个端口”通常指的是开启某个端口以提供服务或允许外部访问,这涉及端口查看、防火墙配置、服务启动等多个环节,下面将详细说明具体操作步骤和注意事项,端口的基本概念端口是网络通信中用于区分不同服务的逻辑接口,范围从0到65535,其中0-1023为知名端口(如HTTP的80、HTTPS的443……

    2025年9月24日
    14300
  • 在Linux系统中,如何通过多种方法完成截屏?工具、命令和快捷键有哪些?

    Linux系统提供了多种截屏方式,涵盖命令行工具和图形界面操作,可满足不同场景需求,无论是快速截取全屏、选定区域,还是延时截屏、编辑标注,用户都能通过合适的工具高效完成,命令行截屏工具:灵活高效,适合自动化命令行工具通过参数控制截屏行为,适合脚本编写或远程服务器环境使用,无需图形界面支持,以下是常用工具及用法……

    2025年9月11日
    18500
  • 如何打开HDF文件?

    HDF是一种分层数据格式,核心在于其树状结构组织数据(类似文件夹),能高效存储和管理包含元数据的大型复杂科学数据集,支持多种数据类型且跨平台兼容。

    2025年6月13日
    15200
  • Linux如何修改PATH变量?

    在Linux系统中,PATH环境变量是一个非常重要的配置,它定义了系统在执行命令时会搜索哪些目录,当用户输入一个命令时,Linux会按照PATH变量中列出的目录顺序依次查找对应的可执行文件,如果需要添加自定义的可执行程序路径(如自行编译的软件、脚本等),就需要修改PATH变量,本文将详细介绍Linux中修改PA……

    2025年9月25日
    12600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信