BASH命令和SHELL脚本总结(12)如何对字段进行操作

本文详细介绍了Linux中常用的文本处理命令cut、paste、join的使用方法及应用场景,包括参数说明、实例演示等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

100%转载自 http://ahei.info/text-processing.htm

cut的用法


挺常用的一个命令, 能非常方便的取某个字段
-f, –fields=LIST 

选择要输出的字段
-c, –characters=LIST 

选择要输出的字符
-b, –bytes=LIST 

选择要输出的字节
-d, –delimiter=DELIM 

设定字段分隔符, 默认是TAB. 可惜的是, 该分隔符也只能是单个字符.
–complement 

取设定的选择LIST的补集
-s, –only-delimited 

忽略不包含分隔符的行, 默认操作是输出整行
–output-delimiter=STRING 

设定输出分隔符
 LIST 

-f, -c, -b选项使用的列表, 可以有下面几种形式:
N 第N个字段/字节/字符
N-从第N个到最后一个
M-N 从第M个到第N个
-M 从第一个到第N个
列表可以有多个, 之间以逗号分割, 比如: cut -f1-3,4-7


paste的用法

这个命令很有意思, 把两个文件按行粘贴到一块, 曾经我想自己写个程序搞定这个需求, 后来发现linux下竟然已经有这玩意了(linux总能给你带来惊喜)
$ cat num2
1
2
$ cat let3
a
b
c
$ paste num2 let3
1       a
2       b
        c
-d, –delimiters=LIST 

paste两个文件的时候, 默认是用TAB分割, 这个选项设定分隔符, 同为可惜的是, 只能为单个字符(主要是paste可以粘贴多个文件, 这个选项的第二个字符用来分割第二个和第三个文件)
-s, –serial 

默认paste是竖着粘贴的, 加了这个选项后, 就横着粘贴了:
$ paste -s num2 let3
1       2
a       b       c


join的用法

这是一个稍微高级点的命令, 它把输入文件当成一个key/value对, 然后会把同一个key的所有value粘贴到一块, 来个例子:

$ cat file1
a 1
b 2
c 3
$ cat file2
a 4
c 6
$ join file1 file2
a 1 4
c 3 6
join默认把第一额字段当作key, 字段之间以空格分割, 作为key的字段必须有序.

-i, –ignore-case  比较字段时, 忽略大小写
-t CHAR  使用CHAR作为字段分隔符, 又是只能为单个字符(杯具…)
-1 FIELD  设定第一个文件的key为第FIELD个字段
-2 FIELD 设定第二个文件的key为第FIELD个字段


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值