我創建了一個腳本,用于記錄是否發送電子郵件(如果它滿足條件)。
我使用 AWK 得到下面的輸出來獲取特定的列。
[自動重啟] 2022 年 3 月 17 日 21:21:32 GMT
我想將它們轉換為 csv 所以我使用下面的命令
cat logchkmail_all.txt | awk '{print $4,$6,$7,$8,$9,$10}' | awk 'NR>1{$1=$1}1' OFS="," > sample.csv
...這有效,但它回傳
[自動重啟],2022 年 3 月 17 日 21:21:32,GMT
正如它應該。但我想要的是能夠分離 [AUTORESTART] 然后合并第 6-10 列,這樣它總共只有 2 列,一列是 [AUTORESTART],另一列是“3 月 17 日 21:21:32 GMT 2022" 為一列。
有沒有辦法做到這一點?
uj5u.com熱心網友回復:
像這樣的東西會起作用嗎?至少如果您不需要一個管道命令中的所有內容:
newstring=`echo $mystring | cut -d' ' -f1`
newstring="$newstring,`echo $mystring | cut -d' ' -f2-`"
echo $newstring # prints out [AUTORESTART],Mar 17 21:21:32 GMT 2022
uj5u.com熱心網友回復:
您可以在awkprint 命令中輸入字串文字。
這是一個例子:
$ cat a
1 2 3 [AUTORESTART] Mar 17 21:21:32 GMT 2022
$ cat a | awk '{print $4 "," $6 " " $7 " " $8 " " $9 " " $10}'
[AUTORESTART],17 21:21:32 GMT 2022
您可以看到我列印第 4 列,然后是文字逗號,然后是第 6 列,然后是文字空格,依此類推,直到第 10 列
然后,您可以將其重定向到 csv 檔案
$ cat a | awk '{print $4 "," $6 " " $7 " " $8 " " $9 " " $10}' > mycsv.csv
uj5u.com熱心網友回復:
我將sed用于這種情況,因為您只想替換第一個空格:
echo '[AUTORESTART] Mar 17 21:21:32 GMT 2022' | sed 's/ /,/'
[AUTORESTART],Mar 17 21:21:32 GMT 2022
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/452549.html
上一篇:嘗試按字符復制字串字符時出現問題
