![タイトル付きの複数のファイルをページごとに確認せずに出力する方法は? [コピー]](https://linux33.com/image/182759/%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E4%BB%98%E3%81%8D%E3%81%AE%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%94%E3%81%A8%E3%81%AB%E7%A2%BA%E8%AA%8D%E3%81%9B%E3%81%9A%E3%81%AB%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
ファイル検索コマンドを実行中にag -g foo
見つかったファイルの内容を見たいです。
これにより、ag -g foo | xargs more
コマンドmore
は、ターミナルウィンドウで一度に複数のファイルを表示できるほど小さいファイルであっても、スペースバーを押して各ファイル間を移動します。
これにより、ag -g foo | xargs cat
一度にすべてが見えますが、ファイルが混乱して新しいファイルがどこから始まるかを知ることは困難です。
1つのスクロールですべてのファイルを見ることができますが、各ファイルのタイトルを含める方法はありますか?
答え1
xargs
タイトルを追加するように指示できます。
ag -g foo | xargs sh -c '
for file do
printf "====== %s =====\n" "$file"
cat -- "$file"
done' sh
あるいは、ループを使用することもできます。
ag -g foo |
while IFS= read -r file; do
printf '======== %s =======\n' "$file"
cat -- "$file"
done | less
(これはag
予想される非常に具体的な形式ではなく、1行に1つのファイル名が出力されると仮定しますxargs
。)