I am trying to create a string array of my modified git files so I can use them in a bash program. Sample output:
On branch restructured
Your branch is up-to-date with 'origin/restructured'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: path/to/file1
modified: path/to/file2
I'm tryig to grab the text after modified: but from what I've found grep doesn't support new line so i'm at a loss how I could convert the raw output into something I could work with.
If you really just want a list of modified files, consider git ls-files -m. If you need something extensible to potentially other types of changes:
git status --porcelain | while read -r status file; do
case "$status" in
M) printf '%s\n' "$file";;
esac
done
How about:
files=(git status | grep '^\s*modified:' | cut -f 2- -d :)
Reading from inside out, that:
git status to grep, whichmodified: on them singularly, then$filesIf you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With