核心语法
cut -d '分隔符' -f 3,5 文件名
-d
:指定字段分隔符(默认是制表符\t
)。-f
:指定要提取的字段位置,用逗号分隔不连续的字段(如3,5
)。
操作步骤与示例
示例1:基本用法(以空格分隔)
假设文件data.txt
内容如下:
Alice 25 Engineer USA 5000
Bob 30 Doctor UK 6000
提取第3列(职业)和第5列(薪资):
cut -d ' ' -f 3,5 data.txt
输出:
Engineer 5000
Doctor 6000
示例2:处理逗号分隔的CSV文件
文件users.csv
Name,Age,Job,Country,Salary
Alice,25,Engineer,USA,5000
提取第3列(Job)和第5列(Salary):
cut -d ',' -f 3,5 users.csv
输出:
Job,Salary
Engineer,5000
示例3:选择字段并重定向到新文件
将结果保存到result.txt
:
cut -d ' ' -f 3,5 data.txt > result.txt
常见问题解决
-
分隔符是连续空格或制表符?
用tr
命令压缩空格后再处理:cat data.txt | tr -s ' ' | cut -d ' ' -f 3,5
-
字段位置包含空格(如英文名)?
改用awk
更灵活(保留空格完整性):awk '{print $3, $5}' data.txt # 默认空格分隔
-
分隔符是特殊字符(如)?
直接指定即可:cut -d ':' -f 3,5 /etc/passwd # 提取系统用户信息
注意事项
- 字段编号从1开始,不是0。
- 若字段不存在(如文件只有4列却取
-f 5
),该位置返回空。 - 复杂分隔场景(如多字符分隔)建议用
awk
或sed
。
cut -d '分隔符' -f 3,5
是提取不连续字段的最简方案,适合处理结构化的文本数据,掌握分隔符设定和字段组合技巧,可大幅提升命令行效率,对于不规则数据,可结合tr
、awk
等工具预处理。
引用说明参考Linux man-pages项目(https://man7.org/linux/man-pages/)及GNU Coreutils官方文档,确保命令的准确性和可靠性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7066.html