如何快速提取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系统如何连接外网

    Linux系统中,连接外网应遵循法律法规并确保网络安全。

    2025年8月18日
    16400
  • linux如何检验语法

    Linux 中,可使用 bash -n 检验 shell 脚本语法,或用

    2025年8月10日
    17800
  • Linux定时任务如何查看?

    查看cron定时任务cron是Linux最常用的定时任务工具,任务存储在以下位置:查看当前用户的cron任务 crontab -l直接列出当前用户的所有定时任务,若提示no crontab for user,表示该用户无定时任务,查看其他用户的cron任务(需root权限) sudo crontab -u us……

    2025年6月30日
    21000
  • 如何安全修改Linux hosts文件?

    hosts文件的作用hosts文件(路径:/etc/hosts)是本地域名解析的配置文件,优先级高于DNS服务器,当访问域名时,系统会先查询此文件,再转向DNS,典型应用场景:将域名指向特定IP(如测试服务器)屏蔽广告域名(如 0.0.1 ads.com)本地开发环境配置(如 168.1.10 myapp.lo……

    2025年6月27日
    20900
  • 离职或留下?你该选哪条路

    在Linux系统中,.sh文件是Shell脚本(Shell Script),本质是包含一系列Linux命令的文本文件,用户通常需要“运行”而非字面意义的“打开”它来执行任务,以下是详细操作指南:运行.sh文件的3种核心方法方法1:直接通过解释器执行(无需权限)bash 文件名.shsh 文件名.sh原理:调用b……

    2025年7月20日
    17100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信