ファイルを開くときに前にカスタムテキストを追加する方法は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
}