grep -Ev "(# Please.*|# with.*|^#$)" $1 > /tmp/msg
cat /tmp/msg > $1
According to SO this is really a limitation of UNIX. The best answer I found there is (stackoverflow.com/a/29735702/5863381)
but really your solution is just fine. You can add some error checking (and make it into a one-liner):
grep -Ev .... %1 > /tmp/msg && cat /tmp/msg > $1
(this way the cat will only execute if the grep didn't produce an error)
You could do the following:
sed -i '/\(# Please.*\|# with.*\|^#$\)/ d' $1
The -i
flag will do the edits in-place, saving you having to create a temp file.
Assuming that the unwanted block always occurs at the same place, you could also do sed -i '/^# Please/,+2 d' $1
(Which will delete the line starting with "# Please" and the next 2 lines as well)
**Just noticed a typo in the second sed
statement - There was a missing "/" (fixed now)
Great idea. I'll update the article to use this.
Edit: I just tried this on macOS and it errors out with sed: 1: ".git/COMMIT_EDITMSG": invalid command code .
. With some searching, I learnt that BSD sed
(the one that macOS uses) requires an extension with -i
. However, even that gives me sed: 1: "/^# Please/,+2 d": expected context address
. Apparently the +2
thing is GNU sed specific. The first statement (with -i.bak
) didn't error, but didn't remove the lines either. I'm guessing it's because of inconsistencies in implementations of sed
.
Does the other sed
command work for you (sed -i.bak '/\(# Please.*\|# with.*\|^#$\)/ d' $1
)?
You can also try this one: sed -i.bak '/^# Please/,/^#$/ d' $1
To keep things tidy you could make it sed -i.bak '/^# Please/,/^#$/ d' $1 && rm $1.bak
Great! In case someone else needs it;
For the cursor on the first line thing on VS Code
[core]
editor = \"C:\\[yourPath]\\Code.exe\" -g $1:1 --wait
in .gitconfig seems to do the trick.
-VSCode's CLI opts
Brilliant stuff! By the way, have you ever tried the GitSavvy plugin? If you did, why did you stop ? If you didn't, please try it out and let me know what you think !
Disclaimer: I occasionally contribute to GitSavvy
Also, I'd like to update your examples to use conventionalcommits.org/
# Explain why this change is being made
# Provide links to any relevant tickets, articles or other resources
Resolves issue #4
Built on Forem — the open source software that powers DEV and other inclusive communities.
Made with love and Ruby on Rails. DEV Community © 2016 - 2024.