私はシェルスクリプトに初めて触れました。
私が持っているのは、各行が次のように始まるログファイルです。
[2021.04.27.17:03:43.813]: ERROR -
[2021.04.27.17:04:36.790]: SUCCESS -
希望する新しいファイル出力は次のとおりです。
2021-04-27 17:03:43 813,ERROR,
2021-04-27 17:04:36 790,SUCCESS,
私がコーディングしたのは
while read a; do
echo ${a//"["/""}
echo ${a//"]"/""}
done < xms.log > resultlog.txt
上記のコードは、代替行から角括弧を削除します。これは、最初の行「[」で始まる角かっこが削除され、2行目「]」で終わる角括弧が削除されることを意味します。すべての行から両方の行を削除したいと思います。さらに、ハイフンに変更したい点は、上記の例にすでに表示されています。
ベストアンサー1
ストリームエディタを使用してsed
テキストファイルを変更します。
sed 's/\./-/;s//-/;s// /;s// /;s/: /,/;s/ -/,/;s/\[//;s/]//' xms.log > resultlog.txt
スクリプトには、セミコロンで区切られたs
形式の代替コマンドのみが含まれています。最初の点をダッシュに置き換えます。次のポイントも交換したいので、パターンを繰り返す必要はありません。パターンを空白にして、他の必須の交換もすべて同じ方法で完了してください。正規表現構文で特別な意味のある文字を一致させる必要がある場合は、バックスラッシュ(および:)を使用してエスケープする必要があります。s/pattern/replacement/
s/\./-/
s//-/
\.
\[
読みやすく、次のように書くこともできます。
sed 's/\./-/
s/\./-/
s/\./ /
s/\./ /
s/: /,/
s/ -/,/
s/\[//
s/]//' xms.log > resultlog.txt