特定のコンテンツ行に基づいてソートされたファイルのリスト

特定のコンテンツ行に基づいてソートされたファイルのリスト

ファイルディレクトリがあります。各ファイルには1行が含まれています。

# order: N

ここで、Nは整数です。そのN番号に基づいてディレクトリ内のすべてのファイルを一覧表示したい(ラッパースクリプトにも含まれています)。 bashコマンドラインでこれを達成できますか?

ベストアンサー1

GNUを使用しgrep、ファイル名にコロンや改行文字が含まれていないとします。

$ ls
bar     baz     foo     freeble quux
$ cat ./*
# order: 3
# order: 2
# order: 1
# order: 4
# order: 5
$ grep -m1 -EH '^# order: [0-9]+$' ./* | sort -n -k3 | cut -d: -f1
foo
baz
bar
freeble
quux

おすすめ記事