如何将多行变量导入grep并保留换行符?
期望结果:
$ git status --porcelain --branch
## test-branch
M image.go
M item.go
?? addme.go
?? testdata/
$ git status --porcelain --branch | grep -c '^??'
2
"2"是答案。
但是在脚本中(或者只输入命令),我无法解析下面的$x
。
$ x="$(git status --porcelain --branch)"
$ y="$(echo $x | grep -c '^??')"
$ echo "$y"
0
我怀疑问题出在我在y
变量赋值时使用了$(echo $x ...
。
编辑:我只执行一次x="$(git status --porcelain --branch)"
,然后用多个grep
命令解析多个输出、值、计数、状态、分支、滞后和其他值。因此,我需要将git status ...
的输出分配给一个变量,并进行多次解析。
git status ...
一次,并反复解析它几十次,以获得各种输出、值、计数、状态、分支、落后、前进等。 - eduncan911$(echo "$x" | grep '^##' | grep -o '\[.\+\]$')
- eduncan911$(grep '^##' <<< "$x" | grep -o '\[.\+\]$')
。 - PesaThe