【发布时间】:2022-10-04 19:19:53
【问题描述】:
我不擅长 bash,我想做的是从 git log --name-status branch_one...branch_two 获取信息,然后通过提交拆分输出,例如:
git_command_output="
commit one
Author: Johny
Date: 01/01/1999
feat: add something
M src/some_file.txt
commit two
Author: Alex
Date: 02/01/1999
fix: bug
M src/some_file.txt"
从上面我想创建和array 的字符串,其中每个字符串都是关于一次提交的信息。
例如 array 看起来像这样:
echo "${array[0]}"
# Author: Johny
# Date: 01/01/1999
# feat: add something
# M src/my_file.txt
echo "${array[1]}"
# Author: Alex
# Date: 02/01/1999
# fix: bug
# M src/foreign_file.txt
我试过的(没有用):
array[0]=$(echo "$git_command_output" | awk '{split($0, array, "commit"); print array[0]}')
IFS='commit' read -r -a array <<< "$git_command_output"
有没有一种简洁的方法,最好使用awk?
【问题讨论】:
标签: regex bash awk split script