【发布时间】:2018-05-24 11:32:37
【问题描述】:
如何通过管道将多行变量传递给 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 ...的输出赋值给一个变量,并多次解析。
【问题讨论】: