由于对shell脚本没有去深究,只是临时遇到了这个需求,才全网的查找。解决这个需求的方法应该有好多,但目前,我实际使用验证了如下方法可行,后续抽空学习下shell脚本。言归正传,需求如下:
1、需求:
我有个头文件,内容大概如下:
...
#define A_B_CC "20201111am"
...
#define A_B_CC 的值会变化,当前是20201111am,下次可能变成20211111pp
如何使用shell脚本来获取A_B_CC对应的常量值(这里目前是20201111am) 并将其保存到一个txt文件
2、解决方法:
方法1:
cat def.h | grep "#define A_B_CC" | cut -d '"' -f 2 >Version.txt
这条语句分三小句,我想,第1/2两句应该大家都懂,解释下第3句:cut -d ‘"’ -f 2 ,
-d和'"'一起把管道输入的一行字符串进行了域的分隔,每一个分隔符(在这里是个双引号“"”)前面的字符串被称为一个域,若有n个分隔符,这个域的编号则从1开始到n+1,第1个分隔符前面的字符串为第1个域。这个域对应在该命令行则是-f后面的数字2,所以该命令`cut -d '"' -f 2表达的意思是输出第二个分隔符“"”之前的域。
方法2:据说可以使用sed,awk等,我不会,欢迎补充。