Linux命令_cut & 按列分割字符串,精确匹配

目录

1. 语法

1.1. 常用参数

2. 常见用法

2.1. 按字节分割列

2.2. 按字符分割列

2.3. 指定分隔符

2.4. 常见用法


1. 语法

cut  [选项]  [文件]

 

1.1. 常用参数

-b:按字节指定列
-c:按字符指定列
-d:指定分隔符
-f:指定分隔符后选择列
-s:不打印没有字段分隔符的行

 

 

2. 常见用法

2.1. 按字节分割列

[yt@localhost ~]$ cat file.txt
a中bcd 1234 eee
1a2b 3c4d 99i
输出每行字节数为2的值
cut -b 2 file.txt    # 第1行字节为2的是一个中文字符的1/3,所以显示不完整
▒
a


输出每行字节数为5和7的值
cut -b 5,7 file.txt
bd
 c


输出每行字节数为5-7的值
cut -b 5-7 file.txt
bcd
 3c

注意:不同的编码表示的字节数不一样

编码 UTF8

  • 1个中文=3个字节,1个中文符号=3个字节
  • 1个英文=1个字节
  • 1个数字=1个字节

编码 GBK

  • 1个中文=2个字节,1个中文符号=2个字节
  • 1个英文=1个字节
  • 1个数字=1个字节

 

 

2.2. 按字符分割列

[yt@localhost ~]$ cat file.txt
a中bcd 1234 eee
1a2b 3c4d 99i
输出第2个字符
cut -c 2 file.txt
中
a


输出第2和第4个字符
cut -c 2,4 file.txt
中c
ab


输出第2-4个字符
cut -c 2-4 file.txt
中bc
a2b

 

 

2.3. 指定分隔符

[yt@localhost ~]$ cat file.txt
a中b,cd  1234 eee
1a2b 3c4d 99i
指定分隔符为逗号
cut -d ',' -f 2 -s file.txt    # 打印第2列
cd  1234 eee


指定分隔符为字符串
cut -d 'b' -f 1 -s file.txt    # 打印第1列
a中
1a2


指定分隔符为空格(注意:文件中存在多个连续空格时,cut -d 无法过滤)
cut -d ' ' -f 1,3 -s file.txt  # 打印第1列和第三列
a中b,cd 1234
1a2b 99i


指定分隔符为空格,过滤多余空格(tr -s ' ')
cat file.txt |tr -s ' ' |cut -d ' ' -f 1-2  # 打印1-2列
a中b,cd 1234
1a2b 3c4d

 

 

2.4. 常见用法

指定第2列
cut -d ' ' -f 2 -s file.txt

指定前2列
cut -d ' ' -f -2 -s file.txt

指定2列后面(包含2列)
cut -d ' ' -f 2- -s file.txt

指定2列和5列
cut -d ' ' -f 2,5 -s file.txt

指定2-5列
cut -d ' ' -f 2-5 -s file.txt

不指定第2列
cut -d  ' ' -f -1,3- -s file.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值