以下のログ抽出と同様に、複数の値を持つファイルを読み取るスクリプトを作成しようとしています。
1=232=343=5610=66=?????? 1=332=343=2010=46=???????? 1=392=343=3610=36=????? ?????1=132=343=9610=16=??????
ここで値 6=????????or? ? ? ? ? ? ? ? (7/8バイト整数または7/8文字の場合があります)
ログを読んで確認し、「6」=を含むフィールドを印刷したいと思います。
次に、値の長さを調べて、8つの整数/バイトより大きいことを確認してください。
その後、その値を含む行を新しいファイルに書き込みます。
答え1
で始まり、その後に7桁以下の10進数が続く行の場合(、またはに一致します6=
が一致しません):6=
6=123
6=123X45678
6=12345678
grep -E '^6=[0-9]{0,7}([^0-9]|$)' < in > out
6=
次の文字で始まり、後に7文字以下になる行の場合:
grep -xE '6=.{0,7}' < in > out
6=
7バイト以下で始まり、次の行の場合:
LC_ALL=C grep -xE '6=.{0,7}' < in > out