unix - 如何从多个输出列表中创建单个字符串

时间:2017-04-28 17:29:09

标签: bash shell unix

我在这里有一个片段,我在命令行上运行,创建了以下输出:

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

我可以用什么命令连接或加入来创建我的字符串?感谢。

2 个答案:

答案 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