Ruby 将随机数目的字符追加到命令的输出

Ruby 将随机数目的字符追加到命令的输出,ruby,bash,Ruby,Bash,我将此命令作为脚本的一部分,该脚本将时间戳添加到正在执行的命令的每一行: $command 2>&1 | tee>(ruby-pe'print Time.now.strftime(“[%s]”)>>“$temp_file”) 我想在这个ruby单行命令中添加一个if来检查输出是否以一个特定的字符结束,如果是,在将该字符写入temp_文件之前添加一个随机数 比如: $line.以?(“*”)结尾?放置“#{line}”+“*”*兰德(1..10):放置“#{line}” 如果您查看Ruby手册页

我将此命令作为脚本的一部分,该脚本将时间戳添加到正在执行的命令的每一行:

$command 2>&1 | tee>(ruby-pe'print Time.now.strftime(“[%s]”)>>“$temp_file”)
我想在这个ruby单行命令中添加一个if来检查输出是否以一个特定的字符结束,如果是,在将该字符写入temp_文件之前添加一个随机数

比如:

$line.以?(“*”)结尾?放置“#{line}”+“*”*兰德(1..10):放置“#{line}”

如果您查看Ruby手册页,它会解释
-p

-n
使Ruby在脚本周围假设以下循环,这使它在文件名参数上进行迭代,有点像sed-n或awk

while gets
  ...
end
-p
的作用与
-n
开关基本相同,但在循环的每一端打印变量
$\uu
的值

% echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"'
MATZ
因此,
$基本上就是您想要的
$行
变量。通过读取/写入此变量,可以更改一行程序的输出

例如,此命令在文件中每行的末尾添加一个感叹号:

ruby -pe '$_ = "#{$_.chomp}!\n"' <myfile  

ruby-pe'$\=“{$\.chomp}!\n”如果您查看ruby的手册页,它会解释
-p

-n
使Ruby在脚本周围假设以下循环,这使它在文件名参数上进行迭代,有点像sed-n或awk

while gets
  ...
end
-p
的作用与
-n
开关基本相同,但在循环的每一端打印变量
$\uu
的值

% echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"'
MATZ
因此,
$基本上就是您想要的
$行
变量。通过读取/写入此变量,可以更改一行程序的输出

例如,此命令在文件中每行的末尾添加一个感叹号:

ruby -pe '$_ = "#{$_.chomp}!\n"' <myfile  
ruby-pe'$\=“{$\.chomp}!\n”
我正在使用
-n
而不是
-p
,以便实际使用从STDIN读取的值执行某些操作:

至于实现,我选择使用正则表达式(
/\*$/
)简洁地替换匹配的最后一个字符。你可以随意调整

我正在使用
-n
而不是
-p
,以便实际使用从STDIN读取的值执行某些操作:

至于实现,我选择使用正则表达式(
/\*$/
)简洁地替换匹配的最后一个字符。你可以随意调整