ファイルには、 | で区切られたキーと値のペアがあります。入力と出力に示すように、キーペアのスペースを削除するように求められます。例: UTC 時間オフセット -> UTCTimeOffset
他のsedとawkコマンドを試しましたが、正しいコマンドを取得できません
入力する:
LogID = AMQ11111.0.FDC|Date/Time = Wed April 14 2021 03:19:43 EET|UTC Time = 1618334334.03|UTC Time Offset = 660 (EFT)|
出力:
LogID = AMQ11111.0.FDC|Date/Time = Wed April 14 2021 03:19:43 EET|UTCTime = 1618334334.03|UTCTimeOffset = 660 (EFT)|
ベストアンサー1
キーまたは値に組み込み文字|
または=
文字が含まれていないとします。
awk 'BEGIN { ORS = RS = "|"; OFS = FS = " =" }{ gsub(" ", "", $1) }; NF > 1' file
これは入力を-で区切られたレコードセットとして扱います|
。各レコードは =
(スペース+ =
)をフィールド区切り文字として使用します。
各履歴について、最初のフィールド(キー)のスペースは削除されますgsub()
。現在のレコードに複数のフィールドがある場合は印刷します(最後に空のレコードが出力されないようにするためのテストです)。
出力の末尾に改行文字がありません。
残念ながら、AIXではテストできませんが、非標準awk
機能を使用するようには見えません。