我有一个bash脚本,开始编写更新日志以跟踪更改。
我在脚本中添加了一个函数,它会回显"Script version --> "
,但我必须手动编辑它。
所以我需要一个函数来获取最后一行的第一个单词直到空格,并将其存储为$CURRENTVERSION
。
更新日志语法如下:
v-0.3.2 Added x, y.
v-0.3.2.1 Fixed y.
v-0.4 Added z.
简而言之,我需要将
v-0.4
存储为$CURRENTVERSION
。使用awk:
awk '{w=$1} END{print w}' file
或者使用sed:
sed -n '$s/^\([^ ]*\).*$/\1/p' file
tail -n1 file | cut -d' ' -f1
awk 'END{print w}' changelog.txt | cut -d' ' -f1
。 - Wyatt_LandWalkerbash:
read CURRENTVERSION rest < <(tail -1 changelog)
CURRENTVERSION=$( perl -anle 'print $F[0] if eof' changelog )
echo $CURRENTVERSION
v-0.4
awk 'END{print}' changelog.txt
)因为我需要保持 $1 为空,然后 currentver[0] 就是我需要的;这是一个好方法吗? - Wyatt_LandWalkersed
命令时,加上-r
参数不是更好吗?这样就不需要转义括号了。 - jkshahawk
会处理整个文件,如果change_log
太长怎么办!这只是一个假设性的问题。我更喜欢用带有grep
的sed
或tail
。 - jkshahseek()
相结合来稍后开始。 - chepner