ログファイルをgrepしてcsvファイルに書き込みます。

ログファイルをgrepしてcsvファイルに書き込みます。

コールIDに基づいてユーザーに再生されるコーデックファイルを調べます。ユーザー/通話IDで2つのファイルが再生されました。このgrep出力を.csvファイルに書き込みます。使った

grep -oP "(?<=$START).*?(?=$END)" $IVRLOG$Progress_log>>$CURRENTPATH/op2.csv
welcome1.g711u #(call_id1)
Announcementbui4.g711u #(call_id1)
welcome1.g711u #(call_id2)
Announcementbui4.g711u #(call_id2)

しかし、私は出力です

welcome1.g711u,Announcementbui4.g711u #callid1
welcome1.g711u,Announcementbui4.g711u #callid2

                 

答え1

grep -oP "(?<=$START).*?(?=$END)" $IVRLOG$Progress_log>>$CURRENTPATH/op2.csv | 
while read line; do
grep "callid" | sed 's/()()//g'  #removing the brackets
done

テストされていない新しい空間コードを処理する必要があるかもしれません。

答え2

grep -oP "(?<=$START)。?(?=$END)" $IVRLOG$Progress_log; then echo "一致検出" { printf "%s," "$target_users"; grep -oP "(?<=$START).?(?=$END)" $IVRLOG$Progress_log | sed '$!N;s/\n/,/'; }>>$CURRENTPATH/E41.csv else echo "一致するものはありません。" { printf " %s\n" "$target_users"; }>>$CURRENTPATH/E41.csv fi Done call_id に対して上記のコードを繰り返して出力を取得しました。 .g711u、お知らせbui4.g711u 9166666663、welcome1.g711u、お知らせbui4.g711u 9155555554、welcome1.g711u 11uイエルはこの点で私を助けました。

関連情報