
リストを作成し、時間属性に基づいてファイルをソートするとします。
ls -ltr
-rwxrwxrwx 1 bla bla 4096 Feb 01 20:10 foo1
-rwxrwxrwx 1 bla bla 4096 Feb 01 20:12 foo2
.
.
.
-rwxrwxrwx 1 bla bla 4096 Mar 05 13:25 foo1000
リストの最後の行のみを取得するには、パイプラインチェーンのls -ltrの後に何を追加する必要がありますか?私はsedとawkがあることを知っていますが、どのように使用しているのかわからず、彼らができることを知っています。
答え1
sedについて具体的に質問したので、
ls -ltr | sed '$!d'
答え2
あなたが探しているものtail
:
ls -ltr | tail -n 1
ls -ltr
これにより、出力の最後の行だけが表示されます。次の値を変更して行数を制御できます-n
。完全に省略すると、-n 1
行が10個になります。
tail
代わりに使用する利点sed
はtail
、改行文字に達するまでファイルの末尾から始まり、最後にsed
達するまでファイル全体を巡回してから最後の改行文字を見つけた後のテキストのみを返す必要があることです。
答え3
awkを使用してください:
ls -ltr | awk 'END { print }'