Bash

Bash:如何將 CLI 輸出的特定行儲存到文件中?

  • August 28, 2018
  1. 假設我在 CLI 中執行 bash 腳本後收到以下輸出(因此此文本將顯示在終端中):
POST https://mycompany.com/
COOKIE='BLABLABLABLABLA'
HOST='ANYIPADDRESS'
FINGERPRINT='sha256:BLABLABLABLA'

如何將COOKIE(僅和之間的文本')的內容儲存'到單獨的文件中?


  1. 此外,上述文本應粘貼到此外部文件中的特定位置。

已經存在的文件內容如下所示:

[global]
Name = Name of VPN connection

[provider_openconnect]
Type = OpenConnect
Name = Name of VPN connection
Host = IP-address
Domain = Domain name
OpenConnect.Cookie = >>>INSERT CONTENT OF THE COOKIE HERE<<<
OpenConnect.ServerCert = sha256:BLABLABLABLA

這怎麼可能?

這些類型的東西本質上不是通用的,但具體的方法是通用的


我假設,你想OpenConnect.Cookie =OpenConnect.Cookie = BLABLABLABLABLA

因此,要首先創建所需的字元串,您可以使用

sed -i  "s/^OpenConnect.Cookie =.*$/$( command_giving_output  | grep 'COOKIE=' | sed "s/COOKIE='//; s/'//g; s/^/OpenConnect.Cookie = /")/" external_filename

在這裡,我使用命令替換首先創建所需的字元串

command_giving_output  | grep 'COOKIE=' | sed "s/COOKIE='//; s/'//g; s/^/OpenConnect.Cookie = /"

然後用這個必需的字元串替換必需的行

sed -i  "s/^OpenConnect.Cookie =.*$/output from above command substitution /" external_filename

引用自:https://unix.stackexchange.com/questions/465042