shell 中常用的字符串处理函数

本文详细介绍了Linux Shell脚本中常用命令cut和join的功能、用法及其实例应用,旨在帮助读者掌握如何高效地处理文本数据。

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

1. cut命令
通常,cut命令用来从输入文件中选取一个或多个字段或者一些字符。
常见的语法:
cut -c list [file ...]
cut -f list [file ...]
选项:
-c: 选择某行中的字符,例如ls -l | cut -c 3-5是选择ls -l命令输出的第3到第5个字符后输出。
-f: 选择某行中的字段,例如ls -l | cut -f 3-5 -d ' '是选择ls -l命令输出的第3到第5个字段后输出。
-d:通常也-f一起使用,指定分割字段的定界符。

2. join命令
join命令用来连接两个文件中的相同键值的其余内容后输出。
常见语法:
join [options...] file1 file2
选项:
-1 field1, -2 field2: 选择file1中的field1字段和file2中的field2字段作为键值。
-o file.field: 输出file中的field字段。通常file是1或2。当由此选项时则只输出指定的字段内容。
-t separator:使用separator作为输入字段的分隔符而非使用空格或TAB。
若想指定file1为标准输入,请使用-。
举例说明:
若sales.txt中内容为:
#ID    名称    数量
   joe    100
   sitanda    200
   dart    150
   tom    210
quotes.txt的内容为:
#ID    姓名    籍贯
   sitanda    湖南
   joe    美国
   tom    法国
   dart    北京
$: sed '/^#/d' quotes.txt > sort -t 2 > quotes1.txt
删除quotes.txt中的以#开头的行,并按照第二个字段排序后输出到quotes1.txt中
$: sed '/^#/d' sales.txt | sort -t 2 > sales1.txt
删除sales.txt中的以#开头的行,并按照第二个字段排序后输出到sales1.txt中
$: join -1 2 -2 2 -o 1.3 -o 2.3 -o 1.2 sales1.txt  quotes1.txt
将sale1.txt的第二个字段和quotes1.txt的第二个字段作为主键合并两个文件的内容,并输出sale1.txt的第2和3个字段,quotes1.txt的第三个字段。结果为:
150 北京 dart
100 美国 joe
200 湖南 sitanda
210 法国 tom
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值