我對bash文本編輯命令比較陌生,並且正在嘗試提高我的技能,所以請耐心等待!使用sed數據創建列(僅限bash)
我正在尋找寫一個簡單的命令序列來查找我的平臺上的所有SSL證書,我的理想輸出將是三列的路徑,文件名和過期。
OK到目前爲止,我有這樣的事情:
sudo find/-type f \(\(-name "*.pem" -o -name "*.crt" \) ! -path "/unwanted/search/location/*" \) -exec sh -c 'echo {}; true' \; -exec openssl x509 -enddate -noout -in {} \; | sed s/notAfter=// | sed -r 's:/([a-Z0-9._-]*)$:\r\n\1:' | sed 's/GMT/&\n/'
這將產生一個可用輸出(上午我花了一些擺弄得功能)。下面是一些例子輸出:
/etc/pki/tls/certs
gogs.crt
Feb 8 23:59:59 2018 GMT
/etc/pki/tls/certs
sample.crt
Jan 18 23:59:59 2018 GMT
最後的問題的時候 - 我應該利用重新格式化下列哪種工具:
/etc/pki/tls/certs gogs.crt Feb 8 23:59:59 2018 GMT
/etc/pki/tls/certs sample.crt Jan 18 23:59:59 2018 GMT
直柱是理想的,但不是我最初的目標 - 現在我真的只是想了解如何提高我的流處理技能,當然必須有一種說明方式:
使用上次命令的輸出,摺疊換行符,替換爲「tab」,添加li nefeed,繼續前進。
有人能提供一些建議嗎?迄今爲止的嘗試已經導致了一些惡夢般的輸出 - 如果這不會增加混亂,我會添加一個例子!
感謝讀者!
注意:我不是100%確定我從哪裏買的,但是afair $ 0不能保證能夠像這樣工作。通常你會使用這樣的技巧:'-exec bash -c'...' - {} \;'然後以'$ 1'的方式訪問文件名。 (在這種情況下'$ 0'將是'--') – hek2mgl
從[bash手冊](https://www.gnu.org/software/bash/manual/html_node/Positional-Parameters.html):位置參數是一個參數用一個或多個數字表示,而不是單個數字0 – hek2mgl
POSIX中描述:http://pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html – hek2mgl