col(:) ベースのログファイルの UNIX テキスト処理

col(:) ベースのログファイルの UNIX テキスト処理

実際のログファイル:

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

xyz:5:90:34:89:22:07

abbc1:6:346:78:89:100:01

ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
Process ID: 0
Session ID: 0 Serial number: 0

abbc1:6:346:78:89:100:01

SP2-0306: Invalid option.
Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM}] [edition=value]]
where <logon> ::= <username>[/<password>][@<connect_identifier>]
      <proxy> ::= <proxyuser>[<username>][/<password>][@<connect_identifier>]
SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus

xyz:5:90:34:89:22:07

abbc1:6:346:78:89:100:01

v-gz1:999:39:56:23:101:123

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

v-gz1:999:39:56:23:101:123

希望の出力:

xyz:5:90:34:89:22:07

abbc1:6:346:78:89:100:01

abbc1:6:346:78:89:100:01

xyz:5:90:34:89:22:07

abbc1:6:346:78:89:100:01

v-gz1:999:39:56:23:101:123

v-gz1:999:39:56:23:101:123

私が探しているのは、coln(:)に基づいてログファイルを処理することです。

  1. sed '/^ :*$/d' logfile1 > logfile2(前にスペースがある行を削除してください。)

  2. sed '/^: *$/d' logfile2 > logfile3(後にスペースがある行は削除してください。)

  3. 存在しない行の削除:

ベストアンサー1

grep -v " " $IN | grep -P ":.*:"

おすすめ記事