使用 sed 删除多个单词

使用 sed 删除多个单词

我正在尝试使用 sed 摆脱以下输入:

branch
branch

not
"git
"git

那是一个空行,即术语“分支”,而不是“git”。但是以下行不起作用:

git status  2>&1  | awk '{print $2}' | sed 's/^$//g' | sed 's/^branch||^not||^changes||^"git//g' 

我该如何正确地写下这一行才能一次性摆脱所有这些?

答案1

实现你想要达到的目标的正确方法如下:

git status --porcelain | sed s/^...//

git help status

--porcelain[=]
以易于脚本解析的格式提供输出。这类似于短输出。


以下是您想要使用命令的内容:

使用sed

... | sed -r '/(^"git|^branch|^not|^$)/d'

使用grep

... | grep -Ev '^branch|^not|^"git|^$'

git它从您的和awk命令返回文件名。

相关内容