シリアルデルタSED onelinerと命名

シリアルデルタSED onelinerと命名

名前付きシーケンスを追加する必要があり、そのためにsedを使用したいと思います。これが私がする方法です:

echo 2015092315 | gsed s/20[0-9][0-9][0-9][0-9]*/`date +%Y%m%d%H`/g

しかし、私はゾーンファイルの更新が1時間に1回以上発生する可能性があり、上記だけでは不十分であることに気づきました。

今度はシーケンス番号を1ずつ増やしたいと思います。行う方法?私はこれを思い出しました。

gsed 's/20[0-9][0-9][0-9][0-9]*/expr & + 1/e'

動作しますが、行の先頭(スペース)と行の終わり(コメント)を削除し、私が望んでいないコメント(sh:serial:見つかりません)に関するエラーを表示します。

ベストアンサー1

Perlが構造に来ます:

perl -pe 's/(20[0-9]{3,})/$1+1/e' file

おすすめ記事