背景:我有一個相當簡單的bash
腳本,我用它來生成CSV
日誌文件。作爲bash腳本的一部分,我使用netcat
來輪詢我的網絡上的其他設備。 netcat
命令返回一個信息流,我可以將其轉換爲grep
命令,以獲得我在CSV
文件中需要的某些值。我拯救grep
該返回值放入bash
變量,然後在腳本的末尾,我寫出來的所有保存bash
變量到CSV
文件。 (很簡單。)Bash,Netcat,Pipes,perl
我想要做的改變是我必須爲每條我想省下的信息發出的netcat
命令的數量。每發出一個netcat
命令,我都會返回所有可能的值(因此每次都返回相同的數據,並且在網絡上負擔很重)。所以,我想只能用netcat
一次,多次解析返回值,因爲我需要創建bash
變量以後可以連接在一起成在CSV
文件我創建一個記錄。
具體問題:使用bash
語法,如果我的netcat
命令的輸出傳遞給使用>
(相對於當前grep
方法)獲得帶有其自己的行(與\n
推測分離的每個條目的文件的文件作爲EOL記錄分離器 - 易於perl正則表達式)。但是,如果我將netcat
的輸出直接保存到bash
變量中,並且將該變量回顯出來,則所有數據混雜在一起,因此解析出來很麻煩(並不那麼容易)。
我有兩個選擇玩:首先,我認爲一個Perl的一個班輪可能有好的解決辦法,但我不知道如何最好地執行它。僞代碼可能會將netcat
輸出保存到一個bash變量,然後以某種方式弄清楚如何用perl解析它(但不是直截了當的)。
第二個選項是使用bash
的>
並將netcat
的輸出發送到文件。這將是容易perl
處理和正則表達式給出的\n
EOL
,但這需要打開一個外部文件,並將其傳遞到perl
腳本進行處理,然後以某種方式傳遞其返回值回bash
腳本作爲入境bash
變量進入CSV
文件。
我知道我失去了一些東西簡單在這裏。有沒有一種方法,我可以強制從netcat
換行符進入bash
變量,然後反覆運行鍼對該變量創建各種CSV
變量我需要一個Perl的一個班輪 - 所有在同一bash
腳本?對不起,長期以來的問題。
太多的單詞,沒有足夠的代碼 –
我敢打賭,你可以將一個*特定的問題* **寫成** a *特定的問題* - 一個句子,或者兩個句子。另外,向我們展示一些代碼,輸入和輸出,並指出您的方法出了什麼問題。 – Rubens
你們抱怨太多的單詞,沒有足夠的代碼...停止懶惰。 secJ試圖儘可能詳細地描述他的問題。 – Yokai