一連の数字から欠落している内容を一覧表示する最も簡潔なスクリプトは何ですか? [コピー]

一連の数字から欠落している内容を一覧表示する最も簡潔なスクリプトは何ですか? [コピー]

たとえば、コンテンツがあります。

001
002
004
008
010

というテキストファイルからfile欠落しているコンテンツをどのように抽出できますか3 5 6 7 9

ベストアンサー1

一方awk通行:

$ awk 'NR != $1 { for (i = prev + 1; i < $1; i++) {print i} } { prev = $1 + 1 }' file
3
5
6
7
9

より明確に言えば:

awk 'NR != $1 {
  for (i = prev + 1; i < $1; i++) {
    print i
  }
} 
{ 
  prev = $1
}'

各行の行番号が数字と一致することを確認し、一致しない場合は、前のprev数字()と現在の数字(含まれていないためi = prev + 1)の間のすべての数字を印刷します。

おすすめ記事