短い時間でカスタムヘッダーを作成するには?それとも、短い時間で2つのファイルを同時に開く方法は?

短い時間でカスタムヘッダーを作成するには?それとも、短い時間で2つのファイルを同時に開く方法は?

ファイルを開くときに前にカスタムテキストを追加する方法はless?たとえば、次のような内容を見たいと思います。

My custom title

Content of the opened file goes here...

私は次のコマンドが欲しい:

echo 'My custom title' | less file

lessそのような機能はありません。ただし、いくつかの回避策で可能でなければなりません。デフォルトでは、2つのファイルを順番に1つにマージしてから開く必要があります。新しいファイルを開くことができるRAMに一時仮想ファイルを作成するにはless

エマルジョン:

ベストアンサー1

なぜできないの

( echo 'My custom title'; cat file ) | less

インタラクティブに使用するには、関数に入れてください。このバージョンでは、ファイル名(less提供できるすべてのオプションを含む)のみを使用します。

# bash
myless() {
    local x=("$@")
    local f="${x[-1]}"
    unset x[-1]
    { echo 'My custom title'; cat "$f"; } | less "${x[@]}"
}

より具体的なシナリオでは、この機能を適切に変更できます。たとえば、最初の引数がヘッダーで、2番目の引数が常にファイルの場合、次のように大幅に単純化できます。

myless() {
    { printf '%s\n' "$1"; cat -- "$2"; } | less
}

lessヘッダーをファイル名として使用するには、すでに持っているオプションを使用してプロンプト行にこのオプションを提供する方が賢明です。しかし、他の面では、

myless() {
    while [ "$#" -gt 0 ]
    do
        printf '\n\n%s\n' "$1"
        cat -- "$1"
        shift
    done |
        less
}

おすすめ記事