sed - 正確に3つのコロン(隣接しない)を含む行を検索(および編集)

sed - 正確に3つのコロン(隣接しない)を含む行を検索(および編集)

ファイル内の3つのコロン()文字を含む行の末尾にいくつかの文字を追加する必要があります:。これらの3:文字は隣接しません。

最初に含まれている文字を編集するために必要な行は、次のように正常に検索して編集でき /16ました。sed

sed "/\/16/ s/$/ ${runid} ${dirname} ${doc}/" $logname  > $logname.new

ただし、アプリケーションが変更され、その文字がターゲット行/16に表示されなくなります。今見つけることができる唯一の方法は、正確に3文字を含む行を見つけることです:

答え1

努力する

sed "s/^[^:]*:[^:]*:[^:]*:[^:]*$/s/$/ ${runid} ${dirname} ${doc}/" $logname  > $logname.new

どこ

  • [^:]*コロン以外の記号数制限なし
  • ^$行の始まりと終わりです。

ゴルファーかもしれません。

関連情報