我們如何在 bash 腳本輸出中的每個特殊字元之後限制和留出空間?
我必須將所有與 rpm 相關的資訊發送到我們的日誌分析器,並且我正在執行下面的命令,該命令給出如下連續輸出:
命令
sudo rpm -qa --info | egrep 'Name|Version|Architecture|Install Date|Vendor|Description'
輸出/輸出
Name : openssh-clients Version : 7.4p1 Architecture: x86_64 Install Date: Fri 29 Nov 2019 02:31:40 PM UTC Vendor : Amazon Linux Description : Name : p11-kit-trust Version : 0.23.5 Architecture: x86_64 Install Date: Tue 18 Jun 2019 10:23:44 PM UTC Vendor : Amazon Linux Description : Name : ec2-hibinit-agent Version : 1.0.0 Architecture: noarch Install Date: Fri 29 Nov 2019 02:31:44 PM UTC Vendor : Amazon Linux Description : Name : python-slip-dbus Version : 0.4.0 Architecture: noarch Install Date: Tue 04 Feb 2020 12:41:09 PM UTC Vendor : Amazon Linux Description :
每當 Name 出現時,我想拆分上述輸出。它應該用空格分隔。
您可以
rpm
使用--qf
.查詢格式是標準 printf(3) 格式的修改版本。該格式由靜態字元串(可能包括換行符、製表符和其他特殊字元的標準 C 字元轉義)和 printf(3) 類型格式化程序組成。由於 rpm 已經知道要列印的類型,因此必須省略類型說明符,並替換為要列印的標頭標籤的名稱,並用 {} 字元括起來。
我
egrep
從你的陳述中取出並使用了格式。sudo rpm -qa --qf "Name\t : %{Name}\nVersion\t : %{Version}\nArchitecture: %{Arch}\nInstall Date: %{INSTALLTIME:date}\nVendor\t : %{Vendor}\nDescription : %{Description}\n\n"
輸出
名稱:vim-enhanced
版本:7.4.629
架構:x86_64
安裝日期:2019 年 10 月 29 日星期二 02:53:20 PM UTC
供應商:CentOS
描述:VIM(VIsual editor iMproved)是 vi 編輯器的更新和改進版本。Vi 是第一個真正的基於螢幕的 UNIX 編輯器,並且仍然非常流行。VIM 通過添加新功能對 vi 進行了改進:多視窗、多級撤消、塊突出顯示等。vim-enhanced 包包含一個 VIM 版本,其中包含最近引入的額外功能,如 Python 和 Perl 解釋器。
如果您想使用包含最近添加的增強功能(如 Python 和 Perl 腳本語言的解釋器)的 VIM 編輯器版本,請安裝 vim-enhanced 包。您還需要安裝 vim-common 軟體包。
名稱:wget
版本:1.14
架構:x86_64
安裝日期:2019 年 10 月 29 日星期二 02:54:15 PM UTC
供應商:CentOS
描述:GNU Wget 是一個文件檢索實用程序,可以使用 HTTP 或
FTP 協議。Wget 功能包括在您註銷時在後台工作的能力、目錄的遞歸檢索、文件名萬用字元匹配、遠端文件時間戳儲存和比較、將 Rest 與 FTP 伺服器結合使用以及將 Range 與 HTTP 伺服器結合使用來檢索文件緩慢或不穩定的連接、對代理伺服器的支持和可配置性。
注意:標記中的格式看起來與我的螢幕上的不同。
還要注意 egrep 沒有給你描述,因為描述從一個新行開始。
最後,描述可以有空格。此方法將擷取完整描述。
您可以使用以下命令查看可用的標籤:
rpm --querytags
參考