我在这里有一个片段,我在命令行上运行,创建了以下输出:
import base64
from Crypto.Cipher import AES
from Crypto import Random
BS = 16
pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
unpad = lambda s : s[:-ord(s[len(s)-1:])]
class AESCipher:
def __init__( self, key ):
self.key = key
def encrypt( self, raw, iv ):
raw = pad(raw)
cipher = AES.new( self.key, AES.MODE_CBC, iv )
return base64.b64encode( cipher.encrypt( raw ) )
def decrypt( self, enc, iv ):
enc = base64.b64decode(enc)
cipher = AES.new(self.key, AES.MODE_CBC, iv )
return unpad(cipher.decrypt( enc ))
a = AESCipher('fce4aa4dcf0d2b27fe4ffdafa602c81d1930c410f48ada5c763d4c4052a939eb'.decode('hex_codec'))
print a.encrypt("This bloody encryption engine won't work !", 'c75271d593ca86ca785e3bb25e8d02cb'.decode('hex_codec'))
b = AESCipher('fce4aa4dcf0d2b27fe4ffdafa602c81d1930c410f48ada5c763d4c4052a939eb'.decode('hex_codec'))
print b.decrypt('44FsQIcqM412+YXZBwwoQSCz2uB9QPQMXJ410Xpw1f/M5RTRS7N6yfziAGq/Fd/E', 'c75271d593ca86ca785e3bb25e8d02cb'.decode('hex_codec'))
我希望我的输出是一个单独的字符串,如下所示:(或者,如果可能,我选择作为分隔符分隔)
$ { time mysql -u root -N -e "select NOW();" >/dev/null; } 2>&1 | grep real; echo ":localhost:"; date +"%m-%d-%y"
real 0m0.022s
:localhost:
04-28-17
我可以用什么命令连接或加入来创建我的字符串?感谢。
答案 0 :(得分:2)
这样的事情应该有效,假设bash
为你的shell:
echo "$(grep real < <({ time mysql -u root -N -e 'select NOW();'; } 2>&1)):localhost:$(date +'%m-%d-%y')"
第一个$(...)
也可能是您原来的{ time mysql -u root -N -e 'select NOW();'; } 2>&1 | grep real
。我没有看到一种特别令人信服的理由偏爱另一种方式。
然而,核心概念是,echo "$(...)"
执行$(...)
内的任何内容的输出都会删除新行...
答案 1 :(得分:0)
你可以将整个野兽包裹起来并发送到sed
以消灭掉线:
{ { time mysql -u root -N -e "select NOW();" >/dev/null; } 2>&1 | grep real; echo ":localhost:"; date +"%m-%d-%y"; } | sed ':a;N;$!ba;s/\n/ /g'
在行动中:
$ { { time mysql -u root -N -e "select NOW();" >/dev/null; } 2>&1 | grep real; echo ":localhost:"; date +"%m-%d-%y"; } | sed ':a;N;$!ba;s/\n/ /g'
real 0m0.412s :localhost: 04-28-17