从stdin读取较少,但显示文件名

时间:2016-03-24 16:42:35

标签: unix command-line

我希望通过输出语法突出显示一堆文件和页面。 问题是,如果从stdin读取,则不会显示文件名。

如何从stdin读取更少的内容并仍然显示文件名?

以下是我要做的事情:

for f in *.py; do
    pygmentize "$f" | less -mR
done

1 个答案:

答案 0 :(得分:1)

您可以使用临时目录并将文件放在那里,使less将其视为"真实"文件。

例如(在提供mktemp能够创建目录的系统上):

#!/bin/sh
mydir=$(mktemp -d)
trap "cd; rm -rf $mydir" EXIT INT QUIT
for f in *.py; do
    pygmentize "$f" >$mydir/"$f"
    (cd $mydir && less -mR "$f" )
done