bash - grep? sed?从变量中删除文本行

发布于 2024-12-26 02:10:19 字数 733 浏览 1 评论 0原文

我有一个充满文本的变量,它实际上是一个 git 日志。 git log 的每一行都有一个 id(JIRA id),可以是 IPAD 或 MIPO。

我想过滤 git 输出并只显示一个或另一个

到目前为止我有这个:

RAW_NOTES=`git log $LAST_REVISION..master --pretty=format:"%h %ar %s"`
echo "Raw git notes: $RAW_NOTES"

然后我可以使用但是...来过滤它

RELEASE_NOTES=`echo "$RAW_NOTES" | grep "$JIRA_KEY"`
echo $RELEASE_NOTES

。 RAW_NOTES 有很好的格式和换行符,RELEASE_NOTES 丢失了我所有的换行符。

如何保留格式或使用其他文本过滤命令来删除某些匹配的文本行。

示例输入:

IPAD did this
IPAD did that
MIPO Im another comment
IPAD something else
IPAD bla bla
MIPO hello 
MIPO doodle do

我希望输出为

MIPO Im another comment
MIPO hello 
MIPO doodle do

谢谢

I have a variable full of text, its actually a git log. Each line of the git log has an id (a JIRA id), which is either IPAD or MIPO.

I want to filter the git output and only show one or the other

So far I have this:

RAW_NOTES=`git log $LAST_REVISION..master --pretty=format:"%h %ar %s"`
echo "Raw git notes: $RAW_NOTES"

then i can filter it using

RELEASE_NOTES=`echo "$RAW_NOTES" | grep "$JIRA_KEY"`
echo $RELEASE_NOTES

However.... RAW_NOTES has nice formatting and line breaks, RELEASE_NOTES loses all my line breaks.

How can I either preserve formatting, or use some other text filtering command to remove certain lines of text that matches.

example input:

IPAD did this
IPAD did that
MIPO Im another comment
IPAD something else
IPAD bla bla
MIPO hello 
MIPO doodle do

and i want the output to be

MIPO Im another comment
MIPO hello 
MIPO doodle do

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

萌梦深 2025-01-02 02:10:19

git log 提供过滤功能,如下所示:

git log --grep="$JIRA_KEY"

git log provides filtering like so:

git log --grep="$JIRA_KEY"
剧终人散尽 2025-01-02 02:10:19

尝试用引号进行回显,如下所示:

echo "$RELEASE_NOTES"

Try echoing with quotes, like this:

echo "$RELEASE_NOTES"
笑饮青盏花 2025-01-02 02:10:19

根据您的示例输入,您可以尝试其中任何一个 -

sed -n '/MIPO/p' filename

sed '/MIPO/!d' filename

awk '/MIPO/' filename

grep "MIPO" filename

Based on your sample input you can try anyone of these -

sed -n '/MIPO/p' filename

sed '/MIPO/!d' filename

awk '/MIPO/' filename

grep "MIPO" filename
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文