gpt4 book ai didi

ruby - 在 Ruby Shell 中转义字符

转载 作者:数据小太阳 更新时间:2023-10-29 09:00:33 24 4
gpt4 key购买 nike

我有一个 bash 命令:

git log --numstat --pretty="%H" -1 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'

我想将此命令分配为字符串变量并使用 exec(stringname) 方法处理输出。

字符串命令在 "+%d, -%d\n" 处中断。有什么办法可以转义这些特殊字符吗?

最佳答案

如果您需要引用已经包含引号的内容,请使用 %q 方法:

command = %q[git log --numstat --pretty="%H" -1 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}']

在 Ruby 中完成所有这些操作可以让您拥有更多的控制权:

require 'open3'

Open3.popen3('git', 'log', '--numstat', '--pretty="%H"', '-1') do |stdin, stdout, stderr, wait_thr|
stdout.each_line do |line|
if (line.match(/\A(\d+)\s+(\d+)\s+(.*)/))
puts '+%d, -%d' % [ $1, $2 ]
end
end
end

关于ruby - 在 Ruby Shell 中转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36727235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com