cut grep head 等命令的使用

本文介绍了一种使用Shell脚本从文本文件中提取特定格式的版本信息的方法,并通过组合使用grep、cut等命令实现了自动化的版本号生成。

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

新建一个文件123.txt
123.txt内容如下:
Release = 0517
VER=”1.0.18.YYMMDD”;
CUS_VER=”xyf123456.xxx”;

脚本内容如下:
RELV=$(shell echo cat 123.txt | grep "Relase" | cut -d ' ' -f 3)
UPGV=$(shell echo cat 123.txt | grep "VER=" | head -n 1 | cut -c 6-12``date +%y%m%d)
DATE_STR=$(shell date +%y%m%d)

echo (UPGV)_ (UPGV)_ (RELV)
执行结果:
1.0.18.180720_0517

命令分析:
1、grep “Release”的意思是找到并列出有Release字符串的所有行,grep “VER=”同理。
2、”cut -d ’ ’ -f 3”的意思是把Release = 0517这个字符串以空格作为分隔符并且取第三个域的内容,=左右分别有一个空格符的。
3、head -n 1的意思是只取第一行匹配的内容,这里是VER=”1.0.18.YYMMDD”;如果不加这个命令的话grep “VER=”的结果是这样的
VER=”1.0.18.YYMMDD”;
CUS_VER=”xyf123456.xxx”;
这不是我想要的,所以加了head -n 1在后面就可以得出这样的结果
VER=”1.0.18.YYMMDD”;
4、cut -c 6-12的意思是已字符为单位取VER=”1.0.18.YYMMDD”;这个字符串的第6~12个字符,结果是“1.0.18.”。
5、date +%y%m%d的意思就是取当前日期结果是180720,和4的结果拼接在一起就是
1.0.18.180720
6、有个疑问,这条命令中的符号‘’是什么作用呢???
(shell echo
cat 123.txt | grep “VER=” | head -n 1 | cut -c 6-12`date +%y%m%d)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值